let queue = Promise.resolve(); | |
const { exec } = require("node:child_process"); | |
const build = (fileName) => { | |
if (fileName) console.log(fileName, "changed"); | |
else console.log("building without optimizations"); | |
queue = queue.then( | |
() => | |
new Promise((resolve) => { | |
exec( | |
"npm run build:stdlib && npm run build:plugins && npm run build:core", | |
{ cwd: __dirname, env: { ...process.env, NO_MIN: true } }, | |
(error) => { | |
if (error) console.error(error); | |
else console.log(fileName || "", "build completed"); | |
resolve(); | |
}, | |
); | |
}), | |
); | |
}; | |
const options = { | |
ignored: /\/(?:toml|plugins|pyscript)\.[mc]?js$/, | |
persistent: true, | |
}; | |
require("chokidar").watch("./src", options).on("change", build); | |
build(); | |