const { buildSync } = require('esbuild'); const pkg = require('psychojs/package.json'); const versionMaybe = process.env.npm_config_outver; const dirMaybe = process.env.npm_config_outdir; const [,,, dir = dirMaybe || 'out', version = versionMaybe || pkg.version] = process.argv; [ // The ESM bundle { format: 'esm', legalComments: 'external', outfile: `./${dir}/psychojs-${version}.js`, }, // The IIFE { globalName: 'PsychoJS', legalComments: 'none', outfile: `./${dir}/psychojs-${version}.iife.js` } ].forEach(function(options) { buildSync({ ...this, ...options }); }, { // Shared options banner: { js: `/*! For license information please see psychojs-${version}.js.LEGAL.txt */`, }, bundle: true, sourcemap: true, entryPoints: ['src/index.js'], minifySyntax: true, minifyWhitespace: true, target: [ // https://github.com/evanw/esbuild/issues/121#issuecomment-646956379 'es2017', 'node14', ] });