From c12f7e547964be386675a114be35ad09167c8034 Mon Sep 17 00:00:00 2001 From: Martin Raifer Date: Wed, 18 Jan 2023 20:34:25 +0100 Subject: [PATCH] migrate to esbuild v0.17; only write esbuild stats if needed see https://github.com/evanw/esbuild/blob/main/CHANGELOG.md#upgrade-guide-for-existing-code --- config/esbuild.config.mjs | 33 +++++++++++++++++++-------------- package.json | 2 +- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/config/esbuild.config.mjs b/config/esbuild.config.mjs index 41bf8452e..5aa555396 100644 --- a/config/esbuild.config.mjs +++ b/config/esbuild.config.mjs @@ -5,17 +5,22 @@ import parse from 'minimist'; let args = parse(process.argv.slice(2), {boolean: true}); delete args._; -esbuild - .build(Object.assign({ - bundle: true, - sourcemap: true, - entryPoints: ['./modules/id.js'], - legalComments: 'none', - logLevel: 'info', - metafile: true, - outfile: 'dist/iD.js' - }, args)) - .then(result => { - fs.writeFileSync('./dist/esbuild.json', JSON.stringify(result.metafile, null, 2)); - }) - .catch(() => process.exit(1)); +const context = await esbuild.context({ + bundle: true, + sourcemap: true, + entryPoints: ['./modules/id.js'], + legalComments: 'none', + logLevel: 'info', + metafile: true, + outfile: 'dist/iD.js' +}); + +if (args.watch) { + await context.watch(); +} else { + const build = await context.rebuild(); + if (args.stats) { + fs.writeFileSync('./dist/esbuild.json', JSON.stringify(build.metafile, null, 2)); + } + await context.dispose(); +} \ No newline at end of file diff --git a/package.json b/package.json index a8fa39d28..efbf8ab96 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "build": "run-s build:css build:data build:js", "build:css": "node scripts/build_css.js", "build:data": "shx mkdir -p dist/data && node scripts/build_data.js", - "build:stats": "esbuild-visualizer --metadata dist/esbuild.json --exclude *.png --filename docs/statistics.html", + "build:stats": "node config/esbuild.config.mjs --stats && esbuild-visualizer --metadata dist/esbuild.json --exclude *.png --filename docs/statistics.html && shx rm dist/esbuild.json", "build:js": "node config/esbuild.config.mjs", "build:js:watch": "node config/esbuild.config.mjs --watch", "clean": "shx rm -f dist/esbuild.json dist/*.js dist/*.map dist/*.css dist/img/*.svg",