naiv-qr/scripts/build.mjs

29 lines
834 B
JavaScript
Raw Normal View History

import { rm, cp } from "node:fs/promises";
const DIST = "dist";
await rm(DIST, { recursive: true, force: true });
const result = await Bun.build({
entrypoints: ["popup/popup.js"],
outdir: `${DIST}/popup`,
target: "browser",
format: "esm",
minify: true,
});
if (!result.success) {
for (const log of result.logs) console.error(log);
process.exit(1);
}
await Promise.all([
cp("manifest.json", `${DIST}/manifest.json`),
cp("popup/popup.html", `${DIST}/popup/popup.html`),
cp("popup/popup.css", `${DIST}/popup/popup.css`),
cp("icons", `${DIST}/icons`, { recursive: true }),
cp("vendor/LICENSE.qrcode-generator", `${DIST}/LICENSE.qrcode-generator`),
]);
const size = (await Bun.file(`${DIST}/popup/popup.js`).arrayBuffer()).byteLength;
console.log(`Built ${DIST}/ (popup.js: ${(size / 1024).toFixed(1)} KB)`);