enhance: localeも監視し、必要であればlocaleをリビルドするように

This commit is contained in:
yukineko 2023-11-27 17:50:01 +09:00
parent a00aea582c
commit 4395f4059b
No known key found for this signature in database
GPG key ID: E5BACB72109B7B90

View file

@ -9,10 +9,12 @@ import cssnano from 'cssnano';
import postcss from 'postcss';
import * as terser from 'terser';
import locales from '../locales/index.js';
import { build as buildLocales } from '../locales/index.js';
import generateDTS from '../locales/generateDTS.js';
import meta from '../package.json' assert { type: "json" };
let locales = buildLocales();
async function copyFrontendFonts() {
await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true });
}
@ -89,10 +91,23 @@ async function build() {
await build();
if (process.argv.includes("--watch")) {
const watcher = fs.watch('./packages', { recursive: true });
for await (const event of watcher) {
if (/^[a-z]+\/src/.test(event.filename)) {
await build();
}
}
const watchers = [
fs.watch('./packages', { recursive: true }),
fs.watch('./locales'),
];
while (true) {
const event = (await Promise.race(watchers.map(watcher => watcher.next())))?.value;
if (!event) continue;
const filename = event.filename?.replaceAll('\\', '/');
if (/^[a-z]+\/src/.test(filename)) {
await build();
}
if (/[a-z]+-[A-Z]+\.yml/.test(filename)) {
locales = buildLocales();
await copyFrontendLocales()
}
}
}