diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/cmd/build.js | 18 | ||||
-rw-r--r-- | scripts/cmd/prebuild.js | 8 |
2 files changed, 25 insertions, 1 deletions
diff --git a/scripts/cmd/build.js b/scripts/cmd/build.js index b2d402890..a95a5b8e3 100644 --- a/scripts/cmd/build.js +++ b/scripts/cmd/build.js @@ -4,6 +4,7 @@ import del from 'del'; import { promises as fs } from 'fs'; import { dim, green, red, yellow } from 'kleur/colors'; import glob from 'tiny-glob'; +import prebuild from './prebuild.js'; /** @type {import('esbuild').BuildOptions} */ const defaultConfig = { @@ -20,9 +21,23 @@ const dt = new Intl.DateTimeFormat('en-us', { minute: '2-digit', }); +function getPrebuilds(isDev, args) { + let prebuilds = []; + while(args.includes('--prebuild')) { + let idx = args.indexOf('--prebuild'); + prebuilds.push(args[idx + 1]); + args.splice(idx, 2); + } + if(prebuilds.length && isDev) { + prebuilds.unshift('--no-minify'); + } + return prebuilds; +} + export default async function build(...args) { const config = Object.assign({}, defaultConfig); const isDev = args.slice(-1)[0] === 'IS_DEV'; + const prebuilds = getPrebuilds(isDev, args); const patterns = args .filter((f) => !!f) // remove empty args .map((f) => f.replace(/^'/, '').replace(/'$/, '')); // Needed for Windows: glob strings contain surrounding string chars??? remove these @@ -59,6 +74,9 @@ export default async function build(...args) { ...config, watch: { onRebuild(error, result) { + if(prebuilds.length) { + prebuild(...prebuilds); + } const date = dt.format(new Date()); if (error || (result && result.errors.length)) { console.error(dim(`[${date}] `) + red(error || result.errors.join('\n'))); diff --git a/scripts/cmd/prebuild.js b/scripts/cmd/prebuild.js index 4a67babe2..0d14e63f1 100644 --- a/scripts/cmd/prebuild.js +++ b/scripts/cmd/prebuild.js @@ -11,6 +11,12 @@ export default async function prebuild(...args) { args.splice(buildToString, 1); buildToString = true; } + let minify = true; + let minifyIdx = args.indexOf('--no-minify'); + if(minifyIdx !== -1) { + minify = false; + args.splice(minifyIdx, 1); + } let patterns = args; let entryPoints = [].concat( @@ -33,7 +39,7 @@ export default async function prebuild(...args) { const tscode = await fs.promises.readFile(filepath, 'utf-8'); const esbuildresult = await esbuild.transform(tscode, { loader: 'ts', - minify: true, + minify, }); const rootURL = new URL('../../', import.meta.url); const rel = path.relative(fileURLToPath(rootURL), filepath); |