add src/dst bundle inputs, prod bundle config

This commit is contained in:
Stewart Allen 2025-11-12 00:46:25 -05:00
commit f78e392e71
4 changed files with 52 additions and 6 deletions

11
app.js
View file

@ -204,6 +204,17 @@ function init(mod) {
fs.mkdirSync(`alt/main`, { recursive: true }); fs.mkdirSync(`alt/main`, { recursive: true });
let body = fs.readFileSync(src); let body = fs.readFileSync(src);
fs.writeFileSync(`alt/main/${key}.js`, body + val); fs.writeFileSync(`alt/main/${key}.js`, body + val);
if (true) {
// packed
src= `src/pack/${key}-main.js`;
if (!fs.existsSync(src)) {
logger.log('missing:', src);
continue;
}
fs.mkdirSync(`alt/pack`, { recursive: true });
body = fs.readFileSync(src);
fs.writeFileSync(`alt/pack/${key}-main.js`, body + val);
}
} }
} }
}; };

View file

@ -0,0 +1,23 @@
{
"compress": true,
"outputs": {
"bundle": "./web/boot/bundle-{version}.bin"
},
"inputs": [
{ "root": "web/moto", "prefix": "moto" },
{ "root": "web/kiri", "prefix": "kiri" },
{ "root": "web/font", "prefix": "font" },
{ "root": "src/wasm", "prefix": "wasm" },
{ "root": "src/wasm", "prefix": "lib/kiri/wasm" },
{ "src": "alt/pack/kiri-main.js", "dst": "lib/main/kiri.js" },
{ "src": "src/pack/kiri-main.js", "dst": "lib/main/kiri.js" },
{ "src": "src/pack/kiri-work.js", "dst": "lib/kiri/run/worker.js" },
{ "src": "src/pack/kiri-pool.js", "dst": "lib/kiri/run/minion.js" },
{ "src": "src/gpu/raster-worker.js", "dst": "lib/gpu/raster-worker.js" },
{ "src": "src/ext/tween.js", "dst": "lib/ext/tween.js" }
],
"excludes": [
"src/pack",
"web/boot/bundle*"
]
}

View file

@ -39,8 +39,18 @@ function* walk(dir, seen = new Set()) {
let entries = []; let entries = [];
let virtMap = new Set(); let virtMap = new Set();
for (const input of inputs) { for (const input of inputs) {
const root = input.root; const { root, prefix, src, dst } = input;
const prefix = input.prefix || '';
if (src && dst) {
if (virtMap.has(dst)) {
console.log('pre-existing', dst);
} else {
entries.push({ file: src, virt: dst });
virtMap.add(dst);
}
}
if (root)
for (const file of walk(root)) { for (const file of walk(root)) {
const rel = path.relative(root, file).replace(/\\/g, '/'); const rel = path.relative(root, file).replace(/\\/g, '/');
const virt = prefix ? `${prefix}/${rel}` : rel; const virt = prefix ? `${prefix}/${rel}` : rel;
@ -115,6 +125,7 @@ for (const { file, virt } of entries) {
entryMeta.push(record); entryMeta.push(record);
dataParts.push(data); dataParts.push(data);
offset += data.length; offset += data.length;
if (debug) console.log('write', virt, data.length);
} }
} }

View file

@ -93,16 +93,17 @@
"build-win-arm": "npm run build -- --win --arm64", "build-win-arm": "npm run build -- --win --arm64",
"build-mac": "npm run build -- --mac --arm64", "build-mac": "npm run build -- --mac --arm64",
"build-mac-intel": "npm run build -- --mac --x64", "build-mac-intel": "npm run build -- --mac --x64",
"bundle": "npm run dev -- --alt --dryrun && COMPRESS=1 node bin/bundler.mjs", "bundle": "npm run dev -- --alt --dryrun && COMPRESS=1 node bin/bundler.mjs bin/bundle-prod.config.json",
"bundle:dev": "npm run dev -- --alt --dryrun && node bin/bundler.mjs", "bundle:dev": "npm run dev -- --alt --dryrun && node bin/bundler.mjs",
"clean": "rm -rf build data dist src/pack tmp src.old web.old .bcache", "bundle:prod": "npm run dev -- --alt --dryrun && node bin/bundler.mjs bin/bundle-prod.config.json",
"clean": "rm -rf alt build data dist src/pack tmp src.old web.old .bcache",
"docs-dev": "docusaurus start --config conf/docusaurus.config.js", "docs-dev": "docusaurus start --config conf/docusaurus.config.js",
"docs-build": "docusaurus build --config conf/docusaurus.config.js", "docs-build": "docusaurus build --config conf/docusaurus.config.js",
"docs-serve": "docusaurus serve --config conf/docusaurus.config.js", "docs-serve": "docusaurus serve --config conf/docusaurus.config.js",
"docs-check": "prettier --config ./conf/prettier.config.js ./docs --check", "docs-check": "prettier --config ./conf/prettier.config.js ./docs --check",
"dev": "npm run webpack-ext && gs-app-server --debug --single", "dev": "npm run webpack-ext && gs-app-server --debug --single",
"prod": "npm run webpack-ext && npm run webpack-src prod && npm run bundle && gs-app-server", "prod": "npm run webpack-ext && npm run webpack-src prod && gs-app-server",
"prod-pack": "npm run webpack-ext && npm run webpack-src prod", "prod-pack": "npm run webpack-ext && npm run webpack-src prod && npm run bundle",
"prod-dryrun": "gs-app-server --dryrun", "prod-dryrun": "gs-app-server --dryrun",
"start": "npm run prebuild prod && electron .", "start": "npm run prebuild prod && electron .",
"start-dev": "npm run prebuild prod && electron . --devel", "start-dev": "npm run prebuild prod && electron . --devel",