Merge branch 'rel-4.3' of github.com:GridSpace/grid-apps into rel-4.3
This commit is contained in:
commit
122588e633
2 changed files with 24 additions and 11 deletions
|
|
@ -1,11 +1,16 @@
|
|||
{
|
||||
"compress": false,
|
||||
"outputs": {
|
||||
"bundle": "./web/boot/bundle.bin"
|
||||
},
|
||||
"inputs": [
|
||||
{ "root": "./web", "prefix": "" },
|
||||
{ "root": "./src", "prefix": "lib" },
|
||||
{ "root": "./src/wasm", "prefix": "wasm" },
|
||||
{ "root": "./src/wasm", "prefix": "lib/kiri/wasm" }
|
||||
{ "root": "web", "prefix": "" },
|
||||
{ "root": "src", "prefix": "lib" },
|
||||
{ "root": "src/wasm", "prefix": "wasm" },
|
||||
{ "root": "src/wasm", "prefix": "lib/kiri/wasm" }
|
||||
],
|
||||
"excludes": [
|
||||
"src/pack",
|
||||
"web/boot/bundle.bin"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,10 +4,17 @@ import uglify from 'uglify-js';
|
|||
import { Buffer } from 'buffer';
|
||||
|
||||
const cfg = JSON.parse(fs.readFileSync(process.argv[2] || './bin/bundle.config.json', 'utf8'));
|
||||
const compress = process.env.UGLIFY ? true : false
|
||||
const { inputs, outputs, excludes, compress } = cfg;
|
||||
const envcomp = process.env.COMPRESS ? JSON.parse(process.env.COMPRESS) : undefined;
|
||||
const debug = process.env.DEBUG;
|
||||
|
||||
// --- recursive directory walker (follows symlinks safely) ---
|
||||
function* walk(dir, seen = new Set()) {
|
||||
dir = path.normalize(dir);
|
||||
if (excludes.indexOf(dir) >= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const real = fs.realpathSync(dir);
|
||||
if (seen.has(real)) {
|
||||
return;
|
||||
|
|
@ -25,7 +32,7 @@ function* walk(dir, seen = new Set()) {
|
|||
|
||||
// --- collect all files according to config ---
|
||||
let entries = [];
|
||||
for (const input of cfg.inputs) {
|
||||
for (const input of inputs) {
|
||||
const root = input.root;
|
||||
const prefix = input.prefix || '';
|
||||
for (const file of walk(root)) {
|
||||
|
|
@ -42,16 +49,17 @@ let offset = 0;
|
|||
let cache = new Map();
|
||||
|
||||
for (const { file, virt } of entries) {
|
||||
if (file.endsWith('/bundle.bin')) {
|
||||
if (excludes.indexOf(file) >= 0) {
|
||||
continue;
|
||||
}
|
||||
let record = cache.get(file);
|
||||
if (record) {
|
||||
// console.log({ dup: file });
|
||||
if (debug) console.log({ alias: virt, from: file });
|
||||
entryMeta.push({ ...record, virt });
|
||||
} else {
|
||||
if (debug) console.log({ write: virt, from: file });
|
||||
let data = fs.readFileSync(file);
|
||||
if (compress && file.endsWith("js")) {
|
||||
if ((envcomp ?? compress) && file.endsWith("js")) {
|
||||
console.log('compress', file);
|
||||
data = uglify.minify(data.toString(), {
|
||||
compress: {
|
||||
|
|
@ -61,7 +69,7 @@ for (const { file, virt } of entries) {
|
|||
});
|
||||
// console.log({ to: typeof(data), data });
|
||||
if (!data.code) {
|
||||
console.log({ skip: file });
|
||||
if (debug) console.log({ skip: file });
|
||||
continue;
|
||||
}
|
||||
data = Buffer.from(data.code);
|
||||
|
|
@ -102,7 +110,7 @@ const header = Buffer.concat([count, ...headerParts]);
|
|||
const full = Buffer.concat([header, ...dataParts]);
|
||||
|
||||
// --- write final bundle ---
|
||||
const outPath = cfg.outputs.bundle || './bundle.bin';
|
||||
const outPath = outputs.bundle || './bundle.bin';
|
||||
fs.mkdirSync(path.dirname(outPath), { recursive: true });
|
||||
fs.writeFileSync(outPath, full); // ⚡ write raw binary
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue