From f7632643c7bcc5e7e20e94460828b8afee408ee9 Mon Sep 17 00:00:00 2001 From: Kristian Dimitrov Date: Wed, 11 Sep 2019 17:38:31 +0300 Subject: [PATCH 1/2] fix: preview shouldn't start native watch --- lib/controllers/prepare-controller.ts | 19 ++++++++++++++++--- lib/controllers/preview-app-controller.ts | 2 +- lib/data/prepare-data.ts | 5 +++++ lib/definitions/prepare.d.ts | 1 + test/controllers/prepare-controller.ts | 3 ++- 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/lib/controllers/prepare-controller.ts b/lib/controllers/prepare-controller.ts index 9d6a85195d..58ea82084d 100644 --- a/lib/controllers/prepare-controller.ts +++ b/lib/controllers/prepare-controller.ts @@ -127,6 +127,21 @@ export class PrepareController extends EventEmitter { } private async startNativeWatcherWithPrepare(platformData: IPlatformData, projectData: IProjectData, prepareData: IPrepareData): Promise { + let newWatchStarted = false; + let hasNativeChanges = false; + + if (prepareData.watchNative) { + newWatchStarted = await this.startNativeWatcher(platformData, projectData); + } + + if (newWatchStarted) { + hasNativeChanges = await this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData); + } + + return hasNativeChanges; + } + + private async startNativeWatcher(platformData: IPlatformData, projectData: IProjectData): Promise { if (this.watchersData[projectData.projectDir][platformData.platformNameLowerCase].nativeFilesWatcher) { return false; } @@ -155,9 +170,7 @@ export class PrepareController extends EventEmitter { this.watchersData[projectData.projectDir][platformData.platformNameLowerCase].nativeFilesWatcher = watcher; - const hasNativeChanges = await this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData); - - return hasNativeChanges; + return true; } @hook('watchPatterns') diff --git a/lib/controllers/preview-app-controller.ts b/lib/controllers/preview-app-controller.ts index 447e86f429..79fb137586 100644 --- a/lib/controllers/preview-app-controller.ts +++ b/lib/controllers/preview-app-controller.ts @@ -99,7 +99,7 @@ export class PreviewAppController extends EventEmitter implements IPreviewAppCon data.env = data.env || {}; data.env.externals = this.$previewAppPluginsService.getExternalPlugins(device); - const prepareData = this.$prepareDataService.getPrepareData(data.projectDir, device.platform.toLowerCase(), { ...data, nativePrepare: { skipNativePrepare: true }, watch: true }); + const prepareData = this.$prepareDataService.getPrepareData(data.projectDir, device.platform.toLowerCase(), { ...data, nativePrepare: { skipNativePrepare: true }, watch: true, watchNative: false }); await this.$prepareController.prepare(prepareData); try { diff --git a/lib/data/prepare-data.ts b/lib/data/prepare-data.ts index c24f6fcc0f..d2aaea51ec 100644 --- a/lib/data/prepare-data.ts +++ b/lib/data/prepare-data.ts @@ -5,6 +5,7 @@ export class PrepareData extends ControllerDataBase { public hmr: boolean; public env: any; public watch?: boolean; + public watchNative: boolean = true; constructor(public projectDir: string, public platform: string, data: any) { super(projectDir, platform, data); @@ -16,6 +17,10 @@ export class PrepareData extends ControllerDataBase { hmr: data.hmr || data.useHotModuleReload }; this.watch = data.watch; + if (_.isBoolean(data.watchNative)) { + this.watchNative = data.watchNative; + } + this.watch = data.watch; } } diff --git a/lib/definitions/prepare.d.ts b/lib/definitions/prepare.d.ts index 43f93ae225..9ad8f0a3c1 100644 --- a/lib/definitions/prepare.d.ts +++ b/lib/definitions/prepare.d.ts @@ -7,6 +7,7 @@ declare global { hmr: boolean; env: any; watch?: boolean; + watchNative: boolean } interface IiOSCodeSigningData { diff --git a/test/controllers/prepare-controller.ts b/test/controllers/prepare-controller.ts index ef0b4a0fd0..c8376c6f16 100644 --- a/test/controllers/prepare-controller.ts +++ b/test/controllers/prepare-controller.ts @@ -9,7 +9,8 @@ const prepareData = { release: false, hmr: false, env: {}, - watch: true + watch: true, + watchNative: true }; let isCompileWithWatchCalled = false; From 984468dc61c6492c4e5971e7b4256cb40da21039 Mon Sep 17 00:00:00 2001 From: Kristian Dimitrov Date: Thu, 12 Sep 2019 13:37:15 +0300 Subject: [PATCH 2/2] chore: fix comments --- lib/controllers/prepare-controller.ts | 6 +++--- lib/data/prepare-data.ts | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/controllers/prepare-controller.ts b/lib/controllers/prepare-controller.ts index 58ea82084d..eefdef791c 100644 --- a/lib/controllers/prepare-controller.ts +++ b/lib/controllers/prepare-controller.ts @@ -127,14 +127,14 @@ export class PrepareController extends EventEmitter { } private async startNativeWatcherWithPrepare(platformData: IPlatformData, projectData: IProjectData, prepareData: IPrepareData): Promise { - let newWatchStarted = false; + let newNativeWatchStarted = false; let hasNativeChanges = false; if (prepareData.watchNative) { - newWatchStarted = await this.startNativeWatcher(platformData, projectData); + newNativeWatchStarted = await this.startNativeWatcher(platformData, projectData); } - if (newWatchStarted) { + if (newNativeWatchStarted) { hasNativeChanges = await this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData); } diff --git a/lib/data/prepare-data.ts b/lib/data/prepare-data.ts index d2aaea51ec..d13ed4d01a 100644 --- a/lib/data/prepare-data.ts +++ b/lib/data/prepare-data.ts @@ -20,7 +20,6 @@ export class PrepareData extends ControllerDataBase { if (_.isBoolean(data.watchNative)) { this.watchNative = data.watchNative; } - this.watch = data.watch; } }