Enforce prod mode, return a Promise so it can be used programmatically

This commit is contained in:
Rich Harris
2018-01-14 13:45:01 -05:00
committed by GitHub
parent d6dda371ca
commit 6a4dc1901c

View File

@@ -1,3 +1,5 @@
process.env.NODE_ENV = 'production';
const fs = require('fs'); const fs = require('fs');
const path = require('path'); const path = require('path');
const mkdirp = require('mkdirp'); const mkdirp = require('mkdirp');
@@ -14,29 +16,32 @@ module.exports = () => {
// create main.js and server-routes.js // create main.js and server-routes.js
create_app(); create_app();
function handleErrors(err, stats) { return new Promise((fulfil, reject) => {
if (err) { function handleErrors(err, stats) {
console.error(err ? err.details || err.stack || err.message || err : 'Unknown error'); if (err) {
process.exit(1); reject(err);
process.exit(1);
}
if (stats.hasErrors()) {
console.error(stats.toString({ colors: true }));
reject(new Error(`Encountered errors while building app`));
}
} }
if (stats.hasErrors()) { client.run((err, clientStats) => {
console.log(stats.toString({ colors: true })); handleErrors(err, clientStats);
process.exit(1); const clientInfo = clientStats.toJson();
} fs.writeFileSync(path.join(dest, 'stats.client.json'), JSON.stringify(clientInfo, null, ' '));
}
client.run((err, clientStats) => { server.run((err, serverStats) => {
handleErrors(err, clientStats); handleErrors(err, serverStats);
const clientInfo = clientStats.toJson(); const serverInfo = serverStats.toJson();
fs.writeFileSync(path.join(dest, 'stats.client.json'), JSON.stringify(clientInfo, null, ' ')); fs.writeFileSync(path.join(dest, 'stats.server.json'), JSON.stringify(serverInfo, null, ' '));
server.run((err, serverStats) => { generate_asset_cache(clientInfo, serverInfo);
handleErrors(err, serverStats); fulfil();
const serverInfo = serverStats.toJson(); });
fs.writeFileSync(path.join(dest, 'stats.server.json'), JSON.stringify(serverInfo, null, ' '));
generate_asset_cache(clientInfo, serverInfo);
}); });
}); });
}; };