diff --git a/lib/definitions/project.d.ts b/lib/definitions/project.d.ts index 1020efd93c..ce606e821e 100644 --- a/lib/definitions/project.d.ts +++ b/lib/definitions/project.d.ts @@ -86,7 +86,7 @@ interface IPlatformProjectService { preparePluginNativeCode(pluginData: IPluginData, options?: any): IFuture; removePluginNativeCode(pluginData: IPluginData): IFuture; afterPrepareAllPlugins(): IFuture; - beforePrepareAllPlugins(): IFuture; + beforePrepareAllPlugins(dependencies?: IDictionary): IFuture; getAppResourcesDestinationDirectoryPath(): IFuture; deploy(deviceIdentifier: string): IFuture; processConfigurationFilesFromAppResources(): IFuture; diff --git a/lib/services/android-project-service.ts b/lib/services/android-project-service.ts index 618d010985..a01a793f9a 100644 --- a/lib/services/android-project-service.ts +++ b/lib/services/android-project-service.ts @@ -393,8 +393,18 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject return Future.fromResult(); } - public beforePrepareAllPlugins(): IFuture { + public beforePrepareAllPlugins(dependencies?: IDictionary): IFuture { if (!this.$config.debugLivesync) { + if (dependencies) { + let platformDir = path.join(this.$projectData.platformsDir, "android"); + let buildDir = path.join(platformDir, "build-tools"); + let checkV8dependants = path.join(buildDir, "check-v8-dependants.js"); + if (this.$fs.exists(checkV8dependants).wait()) { + let stringifiedDependencies = JSON.stringify(dependencies); + this.spawn('node', [checkV8dependants, stringifiedDependencies, this.$projectData.platformsDir], { stdio: "inherit" }).wait(); + } + } + let buildOptions = this.getBuildOptions(); buildOptions.unshift("clean"); diff --git a/lib/tools/node-modules/node-modules-dest-copy.ts b/lib/tools/node-modules/node-modules-dest-copy.ts index 0b42395769..d4c73155e8 100644 --- a/lib/tools/node-modules/node-modules-dest-copy.ts +++ b/lib/tools/node-modules/node-modules-dest-copy.ts @@ -142,7 +142,8 @@ export class NpmPluginPrepare { return; } - this.$platformsData.getPlatformData(platform).platformProjectService.beforePrepareAllPlugins().wait(); + this.$platformsData.getPlatformData(platform).platformProjectService.beforePrepareAllPlugins(dependencies).wait(); + _.each(dependencies, dependency => { let isPlugin = !!dependency.nativescript; if (isPlugin) {