From b6687e2fb05d8a892a6ee0980400d964ee32b339 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Wed, 12 Feb 2025 03:18:59 +0000 Subject: [PATCH] Adding bundle size analysis --- .gitignore | 2 ++ esbuild.config.mjs | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5fe57a7..8572b14 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ package-lock.json main.js main_org.js *.js.map +meta-*.json + # obsidian data.json diff --git a/esbuild.config.mjs b/esbuild.config.mjs index 495c887..2fc5482 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -30,6 +30,8 @@ const plugins = [ } else { console.log("subsequent build:"); } + const filename = `meta-${prod ? "prod" : "dev"}.json`; + await fs.promises.writeFile(filename, JSON.stringify(result.metafile, null, 2)); if (prod) { console.log("Performing terser"); const src = fs.readFileSync("./main_org.js").toString(); @@ -47,7 +49,22 @@ const plugins = [ }, ]; -const externals = ["obsidian", "electron", "crypto", "@codemirror/autocomplete", "@codemirror/collab", "@codemirror/commands", "@codemirror/language", "@codemirror/lint", "@codemirror/search", "@codemirror/state", "@codemirror/view", "@lezer/common", "@lezer/highlight", "@lezer/lr"]; +const externals = [ + "obsidian", + "electron", + "crypto", + "@codemirror/autocomplete", + "@codemirror/collab", + "@codemirror/commands", + "@codemirror/language", + "@codemirror/lint", + "@codemirror/search", + "@codemirror/state", + "@codemirror/view", + "@lezer/common", + "@lezer/highlight", + "@lezer/lr", +]; const context = await esbuild.context({ banner: { js: "// Leave it all to terser", @@ -66,6 +83,7 @@ const context = await esbuild.context({ target: "es2018", logLevel: "info", platform: "browser", + metafile: true, sourcemap: prod ? false : "inline", treeShaking: false, outfile: "main_org.js",