diff --git a/lib/before-prepareJS.js b/lib/before-prepareJS.js index fbbac4d3..d7b69a61 100644 --- a/lib/before-prepareJS.js +++ b/lib/before-prepareJS.js @@ -10,6 +10,6 @@ module.exports = function ($mobileHelper, $projectData, hookArgs) { bundle: appFilesUpdaterOptions.bundle, watch: false // TODO: Read from CLI options... }; - const result = config.bundle && runWebpackCompiler.bind(runWebpackCompiler, config, $mobileHelper, $projectData); + const result = config.bundle && runWebpackCompiler.bind(runWebpackCompiler, config, $mobileHelper, $projectData, hookArgs); return result; } diff --git a/lib/compiler.js b/lib/compiler.js index 29a082ae..f30173d8 100644 --- a/lib/compiler.js +++ b/lib/compiler.js @@ -13,9 +13,13 @@ exports.getWebpackProcess = function getWebpackProcess() { return webpackProcess; } -exports.runWebpackCompiler = function runWebpackCompiler(config, $mobileHelper, $projectData, originalArgs, originalMethod) { +exports.runWebpackCompiler = function runWebpackCompiler(config, $mobileHelper, $projectData, hookArgs, originalArgs, originalMethod) { if (config.bundle) { return new Promise(function (resolveBase, rejectBase) { + if (hookArgs && hookArgs.config && hookArgs.config.changesInfo) { + hookArgs.config.changesInfo.nativeChanged = true; + } + let isResolved = false; function resolve() { if (isResolved) return; @@ -25,13 +29,13 @@ exports.runWebpackCompiler = function runWebpackCompiler(config, $mobileHelper, } resolveBase(); } - function reject() { + function reject(error) { if (isResolved) return; isResolved = true; if (childProcess) { childProcess.removeListener("message", resolveOnWebpackCompilationComplete); } - rejectBase(); + rejectBase(error); } console.log(`Running webpack for ${config.platform}...`); @@ -93,10 +97,9 @@ exports.runWebpackCompiler = function runWebpackCompiler(config, $mobileHelper, if (code === 0) { resolve(); } else { - reject({ - code, - message: `child process exited with code ${code}`, - }); + const error = new Error(`Executing webpack failed with exit code ${code}.`); + error.code = code; + reject(error); } }); });