add bundler load order priority, module bundling with --dryrun

This commit is contained in:
Stewart Allen 2025-10-13 12:24:23 -04:00
commit 5894dcc61c
3 changed files with 25 additions and 4 deletions

18
app.js
View file

@ -37,6 +37,7 @@ let util;
let dir;
let log;
let pre;
let alt;
const EventEmitter = require('events');
class AppEmitter extends EventEmitter {}
@ -64,6 +65,7 @@ function init(mod) {
startTime = time();
lastmod = mod.util.lastmod;
logger = mod.log;
alt = ENV.alt;
pre = ENV.pre || mod.meta.pre;
debug = ENV.debug || mod.meta.debug;
oversion = ENV.over || mod.meta.over;
@ -191,6 +193,14 @@ function init(mod) {
append[key] = minify(append[key]);
}
}
if (alt) {
for (let [ key, val ] of Object.entries(append)) {
fs.mkdirSync(`alt/main`, { recursive: true });
let body = fs.readFileSync(`src/main/${key}.js`);
fs.writeFileSync(`alt/main/${key}.js`, body + val);
}
}
};
// either add module assets to path or require(init.js)
@ -288,14 +298,14 @@ function initModule(mod, file, dir) {
const path = mod.dir + '/' + dir + '/' + file;
try {
const body = fs.readFileSync(path);
// console.log({ inject: code, file, opt });
logger.log({ inject: code, file, opt });
if (opt.first) {
append[code] = body.toString() + '\n' + append[code];
} else {
append[code] += body.toString() + '\n';
}
} catch (e) {
console.log({ missing_file: path, dir, mod });
logger.log({ missing_file: path, dir, mod });
}
},
onload(fn) {
@ -430,6 +440,10 @@ function generateDevices() {
let dstr = JSON.stringify(devs);
util.mkdir(PATH.join(dir,"src","pack"));
fs.writeFileSync(PATH.join(dir,"src","pack","kiri-devs.js"), `export const devices = ${dstr};`);
if (alt) {
fs.mkdirSync('alt/pack', { recursive: true });
fs.writeFileSync(PATH.join(dir,"alt","pack","kiri-devs.js"), `export const devices = ${dstr};`);
}
}
function minify(code) {

View file

@ -5,6 +5,7 @@
},
"inputs": [
{ "root": "web", "prefix": "" },
{ "root": "alt", "prefix": "lib"},
{ "root": "src", "prefix": "lib"},
{ "root": "src/wasm", "prefix": "wasm" },
{ "root": "src/wasm", "prefix": "lib/kiri/wasm" }

View file

@ -32,13 +32,19 @@ function* walk(dir, seen = new Set()) {
// --- collect all files according to config ---
let entries = [];
let virtMap = new Set();
for (const input of inputs) {
const root = input.root;
const prefix = input.prefix || '';
for (const file of walk(root)) {
const rel = path.relative(root, file).replace(/\\/g, '/');
const virt = prefix ? `${prefix}/${rel}` : rel;
if (virtMap.has(virt)) {
console.log('pre-existing', virt, rel, root);
} else {
entries.push({ file, virt });
virtMap.add(virt);
}
}
}