From 6a4dc1901c820fca01c7ada3a1637ba3b46c6034 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sun, 14 Jan 2018 13:45:01 -0500 Subject: [PATCH] Enforce prod mode, return a Promise so it can be used programmatically --- lib/build.js | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/lib/build.js b/lib/build.js index f51fa7f..445a0ce 100644 --- a/lib/build.js +++ b/lib/build.js @@ -1,3 +1,5 @@ +process.env.NODE_ENV = 'production'; + const fs = require('fs'); const path = require('path'); const mkdirp = require('mkdirp'); @@ -14,29 +16,32 @@ module.exports = () => { // create main.js and server-routes.js create_app(); - function handleErrors(err, stats) { - if (err) { - console.error(err ? err.details || err.stack || err.message || err : 'Unknown error'); - process.exit(1); + return new Promise((fulfil, reject) => { + function handleErrors(err, stats) { + if (err) { + 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()) { - console.log(stats.toString({ colors: true })); - process.exit(1); - } - } + client.run((err, clientStats) => { + handleErrors(err, clientStats); + const clientInfo = clientStats.toJson(); + fs.writeFileSync(path.join(dest, 'stats.client.json'), JSON.stringify(clientInfo, null, ' ')); - client.run((err, clientStats) => { - handleErrors(err, clientStats); - const clientInfo = clientStats.toJson(); - fs.writeFileSync(path.join(dest, 'stats.client.json'), JSON.stringify(clientInfo, null, ' ')); + server.run((err, serverStats) => { + handleErrors(err, serverStats); + const serverInfo = serverStats.toJson(); + fs.writeFileSync(path.join(dest, 'stats.server.json'), JSON.stringify(serverInfo, null, ' ')); - server.run((err, serverStats) => { - handleErrors(err, serverStats); - const serverInfo = serverStats.toJson(); - fs.writeFileSync(path.join(dest, 'stats.server.json'), JSON.stringify(serverInfo, null, ' ')); - - generate_asset_cache(clientInfo, serverInfo); + generate_asset_cache(clientInfo, serverInfo); + fulfil(); + }); }); }); -}; \ No newline at end of file +};