electron/build/webpack/run-compiler.js

39 lines
1 KiB
JavaScript
Raw Normal View History

const fs = require('fs');
const path = require('path');
const webpack = require('webpack');
2019-06-02 20:03:03 +00:00
const configPath = process.argv[2];
const outPath = path.resolve(process.argv[3]);
const config = require(configPath);
2019-06-02 20:03:03 +00:00
config.output = {
path: path.dirname(outPath),
filename: path.basename(outPath)
};
2019-06-02 20:03:03 +00:00
const { wrapInitWithProfilingTimeout } = config;
delete config.wrapInitWithProfilingTimeout;
2019-06-02 20:03:03 +00:00
webpack(config, (err, stats) => {
if (err) {
console.error(err);
process.exit(1);
2019-06-02 20:03:03 +00:00
} else if (stats.hasErrors()) {
console.error(stats.toString('normal'));
process.exit(1);
2019-06-02 20:03:03 +00:00
} 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);
2019-06-02 20:03:03 +00:00
}
});