36 lines
934 B
TypeScript
36 lines
934 B
TypeScript
import { readdirSync, copyFileSync, mkdirSync, watch } from "fs";
|
|
import { join } from "path";
|
|
|
|
function copyAllFiles(srcDir: string, destDir: string) {
|
|
const entries = readdirSync(srcDir, { withFileTypes: true });
|
|
|
|
for (const entry of entries) {
|
|
const srcPath = join(srcDir, entry.name);
|
|
const destPath = join(destDir, entry.name);
|
|
|
|
if (entry.isDirectory()) {
|
|
mkdirSync(destPath, { recursive: true });
|
|
copyAllFiles(srcPath, destPath); // recursive
|
|
} else if (entry.isFile()) {
|
|
copyFileSync(srcPath, destPath);
|
|
}
|
|
}
|
|
}
|
|
function build() {
|
|
Bun.build({
|
|
entrypoints: ["src/index.tsx"],
|
|
minify: false,
|
|
sourcemap: true,
|
|
outdir: "dist/",
|
|
})
|
|
|
|
copyAllFiles("./public", "./dist");
|
|
}
|
|
|
|
const watcher = watch(import.meta.dir + "\\src", {recursive: true}, (event, filename) => {
|
|
console.log(`detected ${event} in ${filename}`);
|
|
build();
|
|
});
|
|
|
|
console.log("initial build");
|
|
build(); |