INNER CODE UNIT · JavaScript
siteItems
wangshengithub/staticshield · src/server.js:54
var siteItems = siteRes.pages.map(r => ({ path: r.path, data: r.product })).concat(siteRes.assets.map(a => ({ path: a.path, data: a.data })));
var siteZip = zipFiles(siteItems);
var siteAgg = { css: 0, js: 0, img: 0, icon: 0, imp: 0 };
siteRes.pages.forEach(r => { siteAgg.css += r.stats.css || 0; siteAgg.js += r.stats.js || 0; siteAgg.img += r.stats.img || 0; siteAgg.icon += r.stats.icon || 0; siteAgg.imp += r.stats.import || 0; });
return { ok: true, zip: siteZip.toString('base64'), count: siteRes.pages.length, assetCount: siteRes.assets.length, stats: siteAgg };
} finally { try { fs.rmSync(siteTmp, { recursive: true, force: true }); } catch (e) {} }
}
if (mode === 'bundle') {
var tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'ss-gui-'));
try {
for (var i = 0; i < files.length; i++) safeWrite(tmp, files[i].path, files[i].content, files[i].isDataUri);
var ent = String(body.entry || autoEntry(files));
var entPath = resolveSafely(tmp, ent);
var st; try { st = fs.statSync(entPath); } catch (e) { throw new Error('入口文件无效'); }
if (!st.isFile()) throw new Error('入口不是文件');
html = fs.readFileSync(entPath, 'utf8');
html = bundleHtml(html, tmp, stats);
} finally { try { fs.rmSync(tmp, { recursive: true, force: true }); } catch (e) {} }