1 | const { getWebpackProcesses, runWebpackCompiler, stopWebpackCompiler } = require("./compiler");
|
2 | const { addListener } = require("./utils");
|
3 |
|
4 | module.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 | }
|