import tailwind from "bun-plugin-tailwind"; import { rm, mkdir, copyFile } from "node:fs/promises"; import path from "node:path"; const outdir = path.join(process.cwd(), "dist"); await rm(outdir, { recursive: true, force: true }); const result = await Bun.build({ entrypoints: ["src/index.ts"], outdir, plugins: [tailwind], minify: true, target: "bun", external: ["@napi-rs/canvas"], sourcemap: "linked", define: { "process.env.NODE_ENV": JSON.stringify("production"), }, }); if (!result.success) { throw new AggregateError(result.logs, "Build failed"); } for (const output of result.outputs) { console.log(` ${path.relative(process.cwd(), output.path)} ${(output.size / 1024).toFixed(1)} KB`); } await mkdir(path.join(outdir, "fonts"), { recursive: true }); for (const file of ["InstrumentSerif-Regular.ttf", "NotoSans-Regular.ttf", "NotoSans-Medium.ttf", "NotoSans-SemiBold.ttf"]) { await copyFile(`src/assets/fonts/${file}`, path.join(outdir, "fonts", file)); }