UNPKG

1.54 kBJavaScriptView Raw
1const { getWebpackProcesses, runWebpackCompiler, stopWebpackCompiler } = require("./compiler");
2const { addListener } = require("./utils");
3
4module.exports = function ($logger, $liveSyncService, $devicesService, hookArgs) {
5 if (hookArgs.config) {
6 const appFilesUpdaterOptions = hookArgs.config.appFilesUpdaterOptions;
7 if (appFilesUpdaterOptions.bundle) {
8 addListener($liveSyncService, "liveSyncStopped", () => {
9 const webpackProcesses = getWebpackProcesses();
10 Object.keys(webpackProcesses).forEach(platform => {
11 const devices = $devicesService.getDevicesForPlatform(platform);
12 if (!devices || !devices.length) {
13 stopWebpackCompiler(platform);
14 }
15 });
16 });
17 addListener(process, "exit", stopWebpackCompiler);
18
19 const platforms = hookArgs.config.platforms;
20 return Promise.all(platforms.map(platform => {
21 const env = hookArgs.config.env || {};
22 env.hmr = appFilesUpdaterOptions.useHotModuleReload;
23 const config = {
24 env,
25 platform,
26 bundle: appFilesUpdaterOptions.bundle,
27 release: appFilesUpdaterOptions.release,
28 watch: true
29 };
30
31 return runWebpackCompiler(config, hookArgs.projectData, $logger, $liveSyncService, hookArgs);
32 }));
33 }
34 }
35}