diff options
author | 2023-03-20 18:36:18 -0500 | |
---|---|---|
committer | 2023-03-20 19:36:18 -0400 | |
commit | c9ad4a6b787e2e5c488661ca5714318b07591875 (patch) | |
tree | de9c6c784d8b81014f1016a36df7689dc5782015 /scripts/cmd/build.js | |
parent | 28373452503bc6ca88221ffd39a5590e015e4d71 (diff) | |
download | astro-c9ad4a6b787e2e5c488661ca5714318b07591875.tar.gz astro-c9ad4a6b787e2e5c488661ca5714318b07591875.tar.zst astro-c9ad4a6b787e2e5c488661ca5714318b07591875.zip |
fix: refactor esbuild setup to support watch (#6608)
Diffstat (limited to 'scripts/cmd/build.js')
-rw-r--r-- | scripts/cmd/build.js | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/scripts/cmd/build.js b/scripts/cmd/build.js index 4412693c3..030bcc0c5 100644 --- a/scripts/cmd/build.js +++ b/scripts/cmd/build.js @@ -81,15 +81,15 @@ export default async function build(...args) { return; } - const builder = await esbuild.build({ - ...config, - watch: { - onRebuild(error, result) { + const rebuildPlugin = { + name: 'astro:rebuild', + setup(build) { + build.onEnd(async result => { if (prebuilds.length) { - prebuild(...prebuilds); + await prebuild(...prebuilds); } const date = dt.format(new Date()); - if (error || (result && result.errors.length)) { + if (result && result.errors.length) { console.error(dim(`[${date}] `) + red(error || result.errors.join('\n'))); } else { if (result.warnings.length) { @@ -99,12 +99,17 @@ export default async function build(...args) { } console.log(dim(`[${date}] `) + green('✔ updated')); } - }, + }); }, + }; + + const builder = await esbuild.context({ + ...config, entryPoints, outdir, format, plugins: [ + rebuildPlugin, svelte({ isDev }), ...(copyWASM ? [ @@ -120,6 +125,8 @@ export default async function build(...args) { ], }); + await builder.watch(); + process.on('beforeExit', () => { builder.stop && builder.stop(); }); |