const fs = require("fs"); const path = require("path"); const root = path.resolve(__dirname, ".."); const dist = path.join(root, "dist"); const rootFiles = ["index.html"]; const directories = ["css", "js", "pages", "assets"]; function copyFile(source, target) { fs.mkdirSync(path.dirname(target), { recursive: true }); fs.copyFileSync(source, target); } fs.rmSync(dist, { recursive: true, force: true }); rootFiles.forEach((file) => copyFile(path.join(root, file), path.join(dist, file))); directories.forEach((directory) => copyDirectory(path.join(root, directory), path.join(dist, directory))); console.log("Build output: " + dist); function copyDirectory(source, target) { fs.readdirSync(source, { withFileTypes: true }).forEach((entry) => { const sourcePath = path.join(source, entry.name); const targetPath = path.join(target, entry.name); if (entry.isDirectory()) { copyDirectory(sourcePath, targetPath); return; } copyFile(sourcePath, targetPath); }); }