const fs = require('fs'); const path = require('path'); const webpack = require('webpack'); const configPath = process.argv[2]; const outPath = path.resolve(process.argv[3]); const config = require(configPath); config.output = { path: path.dirname(outPath), filename: path.basename(outPath) }; const { wrapInitWithProfilingTimeout } = config; delete config.wrapInitWithProfilingTimeout; webpack(config, (err, stats) => { if (err) { console.error(err); process.exit(1); } else if (stats.hasErrors()) { console.error(stats.toString('normal')); process.exit(1); } else { if (wrapInitWithProfilingTimeout) { const contents = fs.readFileSync(outPath, 'utf8'); const newContents = `function ___electron_webpack_init__() { ${contents} }; if ((globalThis.process || binding.process).argv.includes("--profile-electron-init")) { setTimeout(___electron_webpack_init__, 0); } else { ___electron_webpack_init__(); }`; fs.writeFileSync(outPath, newContents); } process.exit(0); } });