diff --git a/lib/after-watch.js b/lib/after-watch.js index 421f748d..85e8cb20 100644 --- a/lib/after-watch.js +++ b/lib/after-watch.js @@ -2,8 +2,7 @@ const { stopWebpackCompiler } = require('./compiler'); const { removeListener } = require("./utils"); module.exports = function($logger, $liveSyncService) { - $logger.info("Stopping webpack watch"); - stopWebpackCompiler(); + stopWebpackCompiler($logger); removeListener($liveSyncService, "liveSyncStopped"); removeListener(process, "exit"); } diff --git a/lib/before-watch.js b/lib/before-watch.js index 5d65310f..84ba260d 100644 --- a/lib/before-watch.js +++ b/lib/before-watch.js @@ -10,11 +10,11 @@ module.exports = function ($logger, $liveSyncService, $devicesService, hookArgs) Object.keys(webpackProcesses).forEach(platform => { const devices = $devicesService.getDevicesForPlatform(platform); if (!devices || !devices.length) { - stopWebpackCompiler(platform); + stopWebpackCompiler($logger, platform); } }); }); - addListener(process, "exit", stopWebpackCompiler); + addListener(process, "exit", () => stopWebpackCompiler($logger)); const platforms = hookArgs.config.platforms; return Promise.all(platforms.map(platform => { diff --git a/lib/compiler.js b/lib/compiler.js index eeb1515c..625fc75d 100644 --- a/lib/compiler.js +++ b/lib/compiler.js @@ -123,11 +123,11 @@ exports.runWebpackCompiler = function runWebpackCompiler(config, $projectData, $ } } -exports.stopWebpackCompiler = function stopWebpackCompiler(platform) { +exports.stopWebpackCompiler = function stopWebpackCompiler($logger, platform) { if (platform) { - stopWebpackForPlatform(platform); + stopWebpackForPlatform($logger, platform); } else { - Object.keys(webpackProcesses).forEach(platform => stopWebpackForPlatform(platform)); + Object.keys(webpackProcesses).forEach(platform => stopWebpackForPlatform($logger, platform)); } } @@ -171,9 +171,11 @@ function logSnapshotWarningMessage($logger) { } } -function stopWebpackForPlatform(platform) { +function stopWebpackForPlatform($logger, platform) { + $logger.trace(`Stopping webpack watch for platform ${platform}.`); const webpackProcess = webpackProcesses[platform]; webpackProcess.kill("SIGINT"); + delete webpackProcesses[platform]; }