fix: refactor esbuild setup to support watch (#6608)

This commit is contained in:
Nate Moore 2023-03-20 18:36:18 -05:00 committed by GitHub
parent 2837345250
commit c9ad4a6b78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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();
});