21 lines
778 B
TypeScript
21 lines
778 B
TypeScript
import {cpSync, mkdirSync, readFileSync, rmSync, writeFileSync} from "node:fs";
|
|
|
|
rmSync("dist", {recursive: true, force: true});
|
|
mkdirSync("dist/assets", {recursive: true});
|
|
const result = await Bun.build({
|
|
entrypoints: ["src/client.ts"],
|
|
outdir: "dist/assets",
|
|
target: "browser",
|
|
minify: true,
|
|
sourcemap: "none",
|
|
naming: "client.js"
|
|
});
|
|
if (!result.success) {
|
|
for (const log of result.logs) console.error(log);
|
|
process.exit(1);
|
|
}
|
|
const version = Bun.hash(`${readFileSync("src/client.ts", "utf8")}\0${readFileSync("src/styles.css", "utf8")}`).toString(36);
|
|
writeFileSync("dist/index.html", readFileSync("src/index.html", "utf8").replaceAll("__ASSET_VERSION__", version));
|
|
cpSync("src/styles.css", "dist/styles.css");
|
|
cpSync("public", "dist", {recursive: true});
|