/* This script will build the various components with esbuild */ const esbuild = require('esbuild') const pkg = require('./package.json') // Create banner based on package info const banner = `/** * ${pkg.name} | v${pkg.version} * ${pkg.description} * (c) ${new Date().getFullYear()} ${pkg.author} * @license ${pkg.license} */` // Shared esbuild options const options = { banner: { js: banner }, bundle: true, entryPoints: [ './src/Blockquote/index.js', './src/Draft/index.js', './src/DraftConfigurator/index.js', './src/Example/index.js', './src/Icon/index.js', './src/Legend/index.js', './src/LineDrawing/index.js', './src/Logo/index.js', './src/Robot/index.js', './src/SampleConfigurator/index.js', './src/Spinner/index.js', './src/withGist/index.js', './src/withLanguage/index.js', './src/withStorage/index.js', './src/Workbench/index.js', ], external: [ "@freesewing", "react", "react-dom", "react-intl", "@material-ui", "axios", "babel", "prismjs", "react-markdown", "file-saver", "yaml", ], format: 'cjs', metafile: process.env.VERBOSE ? true : false, minify: process.env.NO_MINIFY ? false : true, loader: { '.js': 'jsx' }, outdir: './', sourcemap: true, } // Let esbuild do its thing // Only generating CJS since this will be dropped in v3 let result (async () => { result = await esbuild .build(options) .catch(() => process.exit(1)) if (process.env.VERBOSE) { const info = await esbuild.analyzeMetafile(result.metafile) console.log(info) } })()