chore: checkpoint before performance tuning
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { mkdirSync, writeFileSync } from "node:fs";
|
||||
import { dirname, join } from "node:path";
|
||||
|
||||
const componentRoot = join(import.meta.dir, "..");
|
||||
const outFile = join(componentRoot, "public", "app.js");
|
||||
|
||||
const result = await Bun.build({
|
||||
entrypoints: [join(componentRoot, "src", "app.tsx")],
|
||||
target: "browser",
|
||||
format: "iife",
|
||||
define: {
|
||||
"process.env.NODE_ENV": "\"production\"",
|
||||
"import.meta.env": "{\"MODE\":\"production\"}",
|
||||
"import.meta.env.MODE": "\"production\"",
|
||||
},
|
||||
minify: true,
|
||||
sourcemap: "none",
|
||||
});
|
||||
|
||||
if (!result.success || result.outputs.length === 0) {
|
||||
const messages = result.logs.map((item) => item.message).join("; ");
|
||||
throw new Error(`frontend app build failed: ${messages || "no output"}`);
|
||||
}
|
||||
|
||||
const bundle = await result.outputs[0].text();
|
||||
mkdirSync(dirname(outFile), { recursive: true });
|
||||
writeFileSync(outFile, bundle, "utf8");
|
||||
|
||||
console.log(JSON.stringify({ ok: true, outFile, bytes: Buffer.byteLength(bundle, "utf8") }));
|
||||
Reference in New Issue
Block a user