From 2ed8f2604b260064066efaa00510ea5693a76e54 Mon Sep 17 00:00:00 2001 From: fatme Date: Sun, 30 Jun 2019 23:31:06 +0300 Subject: [PATCH 01/12] fix: don't restart application when lazy loaded code is changed in angular app with uglify option Currently CLI has a logic to restart the application when one or more of the emitted files from webpack compilation is not hot update. When a lazy loaded code is changed in angular application and uglify option is provided, CLI always restarts the application. (as 0.js, 1.js are reported as changed). This happens due to the fact that CLI omits entry point files and runtime files from emitted files to check if all rest files are hot updates. As the lazy loaded chunks (`0.js`, `1.js`) are neither entry point files nor runtime files, they are not omitted and CLI decides that there is file that is not hot update and restarts the application. This PR changes this behavior and respects only chunk files from webpack compilation. Chunk files are all files except hot update files. Chunk files are: `runtime.js`, `tns_modules/inspector-modules.js`, `bundle.js`, `vendor.js` and all lazy loaded modules. --- lib/services/webpack/webpack-compiler-service.ts | 11 ++++------- lib/services/webpack/webpack.d.ts | 3 +-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/lib/services/webpack/webpack-compiler-service.ts b/lib/services/webpack/webpack-compiler-service.ts index d238bcc7a8..f795aaa72d 100644 --- a/lib/services/webpack/webpack-compiler-service.ts +++ b/lib/services/webpack/webpack-compiler-service.ts @@ -45,7 +45,7 @@ export class WebpackCompilerService extends EventEmitter implements IWebpackComp let result; if (prepareData.hmr) { - result = this.getUpdatedEmittedFiles(message.emittedFiles, message.webpackRuntimeFiles, message.entryPointFiles); + result = this.getUpdatedEmittedFiles(message.emittedFiles, message.chunkFiles); } else { result = { emittedFiles: message.emittedFiles, fallbackFiles: [], hash: "" }; } @@ -218,16 +218,13 @@ export class WebpackCompilerService extends EventEmitter implements IWebpackComp return args; } - private getUpdatedEmittedFiles(emittedFiles: string[], webpackRuntimeFiles: string[], entryPointFiles: string[]) { + private getUpdatedEmittedFiles(emittedFiles: string[], chunkFiles: string[]) { let fallbackFiles: string[] = []; let hotHash; let result = emittedFiles.slice(); const hotUpdateScripts = emittedFiles.filter(x => x.endsWith('.hot-update.js')); - if (webpackRuntimeFiles && webpackRuntimeFiles.length) { - result = result.filter(file => webpackRuntimeFiles.indexOf(file) === -1); - } - if (entryPointFiles && entryPointFiles.length) { - result = result.filter(file => entryPointFiles.indexOf(file) === -1); + if (chunkFiles && chunkFiles.length) { + result = result.filter(file => chunkFiles.indexOf(file) === -1); } hotUpdateScripts.forEach(hotUpdateScript => { const { name, hash } = this.parseHotUpdateChunkName(hotUpdateScript); diff --git a/lib/services/webpack/webpack.d.ts b/lib/services/webpack/webpack.d.ts index 7f03b1b3c4..9f1b68e977 100644 --- a/lib/services/webpack/webpack.d.ts +++ b/lib/services/webpack/webpack.d.ts @@ -34,8 +34,7 @@ declare global { interface IWebpackEmitMessage { emittedFiles: string[]; - webpackRuntimeFiles: string[]; - entryPointFiles: string[]; + chunkFiles: string[]; } interface IPlatformProjectService extends NodeJS.EventEmitter, IPlatformProjectServiceBase { From af2f20d148a4591af51fb866c34067264a2e4a10 Mon Sep 17 00:00:00 2001 From: fatme Date: Mon, 1 Jul 2019 00:05:06 +0300 Subject: [PATCH 02/12] fix: release the console on deploy command Currently deploy command doesn't release the console as the watch option has default true value. --- lib/commands/deploy.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/commands/deploy.ts b/lib/commands/deploy.ts index 62a35ee7b4..aa7f613e95 100644 --- a/lib/commands/deploy.ts +++ b/lib/commands/deploy.ts @@ -6,6 +6,7 @@ export class DeployOnDeviceCommand extends ValidatePlatformCommandBase implement public allowedParameters: ICommandParameter[] = []; public dashedOptions = { + watch: { type: OptionType.Boolean, default: false, hasSensitiveValue: false }, hmr: { type: OptionType.Boolean, default: false, hasSensitiveValue: false }, }; From 9a35f200f0afc87be6d08b029bdaeb68a0017e5b Mon Sep 17 00:00:00 2001 From: fatme Date: Mon, 1 Jul 2019 00:15:12 +0300 Subject: [PATCH 03/12] fix: add package.json files from nativescript plugins to watch patterns Currently CLI respects the changes only in the followings package.json files: * package.json from app folder * package.json from root folder of the application The changes from package.json files form NS plugins are not respected as they are not added to the watch's patterns. --- lib/controllers/prepare-controller.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/controllers/prepare-controller.ts b/lib/controllers/prepare-controller.ts index 52c1eec584..440be46ceb 100644 --- a/lib/controllers/prepare-controller.ts +++ b/lib/controllers/prepare-controller.ts @@ -149,15 +149,19 @@ export class PrepareController extends EventEmitter { @hook('watchPatterns') public async getWatcherPatterns(platformData: IPlatformData, projectData: IProjectData): Promise { - const pluginsNativeDirectories = this.$nodeModulesDependenciesBuilder.getProductionDependencies(projectData.projectDir) - .filter(dep => dep.nativescript) + const dependencies = this.$nodeModulesDependenciesBuilder.getProductionDependencies(projectData.projectDir) + .filter(dep => dep.nativescript); + const pluginsNativeDirectories = dependencies .map(dep => path.join(dep.directory, PLATFORMS_DIR_NAME, platformData.platformNameLowerCase)); + const pluginsPackageJsonFiles = dependencies.map(dep => path.join(dep.directory, PACKAGE_JSON_FILE_NAME)); const patterns = [ path.join(projectData.projectDir, PACKAGE_JSON_FILE_NAME), path.join(projectData.getAppDirectoryPath(), PACKAGE_JSON_FILE_NAME), path.join(projectData.getAppResourcesRelativeDirectoryPath(), platformData.normalizedPlatformName), - ].concat(pluginsNativeDirectories); + ] + .concat(pluginsNativeDirectories) + .concat(pluginsPackageJsonFiles); return patterns; } From 888839c7817e4b20026b111059a4d154bafa52c1 Mon Sep 17 00:00:00 2001 From: fatme Date: Mon, 1 Jul 2019 09:06:58 +0300 Subject: [PATCH 04/12] fix: fix prepare from plugin's directory Currently when prepare command is executed from plugin's directory, CLI throws an error that it is not able to find `webpack.config.js` file. This is due to the reason that CLI finds nativescript key in package.json and consider that directory as project dir. This PR fixes this behavior as checks if there is `id` inside nativescript key. --- lib/common/project-helper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/common/project-helper.ts b/lib/common/project-helper.ts index 85be0b6be3..e0b34a1f7b 100644 --- a/lib/common/project-helper.ts +++ b/lib/common/project-helper.ts @@ -59,7 +59,7 @@ export class ProjectHelper implements IProjectHelper { if (this.$staticConfig.CLIENT_NAME_KEY_IN_PROJECT_FILE) { try { const fileContent = this.$fs.readJson(projectFilePath); - const clientSpecificData = fileContent[this.$staticConfig.CLIENT_NAME_KEY_IN_PROJECT_FILE]; + const clientSpecificData = fileContent[this.$staticConfig.CLIENT_NAME_KEY_IN_PROJECT_FILE] && fileContent[this.$staticConfig.CLIENT_NAME_KEY_IN_PROJECT_FILE].id; return !!clientSpecificData; } catch (err) { this.$errors.failWithoutHelp("The project file is corrupted. Additional technical information: %s", err); From 7d4f742645058f5adea0e1312cb3e9bbbf552634 Mon Sep 17 00:00:00 2001 From: rosen-vladimirov Date: Mon, 1 Jul 2019 13:37:24 +0300 Subject: [PATCH 05/12] fix: remove debug qr code message --- lib/services/livesync/playground/preview-qr-code-service.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/services/livesync/playground/preview-qr-code-service.ts b/lib/services/livesync/playground/preview-qr-code-service.ts index 3da28180c1..2609a2cd55 100644 --- a/lib/services/livesync/playground/preview-qr-code-service.ts +++ b/lib/services/livesync/playground/preview-qr-code-service.ts @@ -44,8 +44,6 @@ export class PreviewQrCodeService implements IPreviewQrCodeService { const qrCodeUrl = this.$previewSdkService.getQrCodeUrl(options); const url = await this.getShortenUrl(qrCodeUrl); - this.$logger.info("======== qrCodeUrl ======== ", qrCodeUrl); - this.$logger.info(); const message = `${EOL} Generating qrcode for url ${url}.`; this.$logger.trace(message); From 83609a332a9ae0ef75d49c009a09d7307ce28aa7 Mon Sep 17 00:00:00 2001 From: rosen-vladimirov Date: Mon, 1 Jul 2019 13:45:55 +0300 Subject: [PATCH 06/12] fix: do not start multiple watchers In some cases (for example `tns preview` and scan QR code simultaneously with several devices) we start multiple watchers per platform. We should always have single watcher per platform (one from webpack and one native in fact). --- lib/controllers/prepare-controller.ts | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/controllers/prepare-controller.ts b/lib/controllers/prepare-controller.ts index 52c1eec584..87a9d62098 100644 --- a/lib/controllers/prepare-controller.ts +++ b/lib/controllers/prepare-controller.ts @@ -80,24 +80,24 @@ export class PrepareController extends EventEmitter { nativeFilesWatcher: null, webpackCompilerProcess: null }; - } + await this.startJSWatcherWithPrepare(platformData, projectData, prepareData); // -> start watcher + initial compilation + const hasNativeChanges = await this.startNativeWatcherWithPrepare(platformData, projectData, prepareData); // -> start watcher + initial prepare + const result = { platform: platformData.platformNameLowerCase, hasNativeChanges }; - await this.startJSWatcherWithPrepare(platformData, projectData, prepareData); // -> start watcher + initial compilation - const hasNativeChanges = await this.startNativeWatcherWithPrepare(platformData, projectData, prepareData); // -> start watcher + initial prepare + const hasPersistedDataWithNativeChanges = this.persistedData.find(data => data.platform === result.platform && data.hasNativeChanges); + if (hasPersistedDataWithNativeChanges) { + result.hasNativeChanges = true; + } - const result = { platform: platformData.platformNameLowerCase, hasNativeChanges }; - const hasPersistedDataWithNativeChanges = this.persistedData.find(data => data.platform === result.platform && data.hasNativeChanges); - if (hasPersistedDataWithNativeChanges) { - result.hasNativeChanges = true; - } + // TODO: Do not persist this in `this` context. Also it should be per platform. + this.isInitialPrepareReady = true; - this.isInitialPrepareReady = true; + if (this.persistedData && this.persistedData.length) { + this.emitPrepareEvent({ files: [], hasOnlyHotUpdateFiles: false, hasNativeChanges: result.hasNativeChanges, hmrData: null, platform: platformData.platformNameLowerCase }); + } - if (this.persistedData && this.persistedData.length) { - this.emitPrepareEvent({ files: [], hasOnlyHotUpdateFiles: false, hasNativeChanges: result.hasNativeChanges, hmrData: null, platform: platformData.platformNameLowerCase }); + return result; } - - return result; } private async startJSWatcherWithPrepare(platformData: IPlatformData, projectData: IProjectData, prepareData: IPrepareData): Promise { From d6af7bff74f88e3e923efdd22290018d0e86467a Mon Sep 17 00:00:00 2001 From: rosen-vladimirov Date: Mon, 1 Jul 2019 13:57:26 +0300 Subject: [PATCH 07/12] fix: handle preview initial sync once per device Handle preview initial sync once per device (in some cases PubNub reports the device multiple times). Also prepare all the files once per platform, not per each device. --- lib/controllers/preview-app-controller.ts | 33 +++++++++++++++-------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/controllers/preview-app-controller.ts b/lib/controllers/preview-app-controller.ts index 9cf26564d8..c1883a76bf 100644 --- a/lib/controllers/preview-app-controller.ts +++ b/lib/controllers/preview-app-controller.ts @@ -9,7 +9,8 @@ import { PrepareDataService } from "../services/prepare-data-service"; import { PreviewAppLiveSyncEvents } from "../services/livesync/playground/preview-app-constants"; export class PreviewAppController extends EventEmitter implements IPreviewAppController { - private deviceInitializationPromise: IDictionary> = {}; + private deviceInitializationPromise: IDictionary = {}; + private platformPrepareHandlers: IDictionary = {}; private promise = Promise.resolve(); constructor( @@ -49,9 +50,14 @@ export class PreviewAppController extends EventEmitter implements IPreviewAppCon } if (this.deviceInitializationPromise[device.id]) { - return this.deviceInitializationPromise[device.id]; + // In some cases devices are reported several times during initialization. + // In case we are already preparing the sending of initial files, disregard consecutive requests for initial files + // until we send the files we are currently preparing. + return null; } + this.deviceInitializationPromise[device.id] = true; + if (device.uniqueId) { await this.$analyticsService.trackEventActionInGoogleAnalytics({ action: TrackActionNames.PreviewAppData, @@ -68,20 +74,25 @@ export class PreviewAppController extends EventEmitter implements IPreviewAppCon await this.$previewAppPluginsService.comparePluginsOnDevice(data, device); - this.$prepareController.on(PREPARE_READY_EVENT_NAME, async currentPrepareData => { - await this.handlePrepareReadyEvent(data, currentPrepareData.hmrData, currentPrepareData.files, device.platform); - }); + if (!this.platformPrepareHandlers[device.platform]) { + // TODO: Unset this property once the preview operation for this platform is stopped + this.platformPrepareHandlers[device.platform] = true; + + // TODO: Remove the handler once the preview operation for this platform is stopped + this.$prepareController.on(PREPARE_READY_EVENT_NAME, async currentPrepareData => { + await this.handlePrepareReadyEvent(data, currentPrepareData.hmrData, currentPrepareData.files, device.platform); + }); - if (!data.env) { data.env = { }; } + } + + 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 }); await this.$prepareController.prepare(prepareData); - this.deviceInitializationPromise[device.id] = this.getInitialFilesForPlatformSafe(data, device.platform); - try { - const payloads = await this.deviceInitializationPromise[device.id]; + const payloads = await this.getInitialFilesForPlatformSafe(data, device.platform); return payloads; } finally { this.deviceInitializationPromise[device.id] = null; @@ -116,7 +127,7 @@ export class PreviewAppController extends EventEmitter implements IPreviewAppCon if (status === HmrConstants.HMR_ERROR_STATUS) { const originalUseHotModuleReload = data.useHotModuleReload; data.useHotModuleReload = false; - await this.syncFilesForPlatformSafe(data, { filesToSync: platformHmrData.fallbackFiles }, platform, previewDevice.id ); + await this.syncFilesForPlatformSafe(data, { filesToSync: platformHmrData.fallbackFiles }, platform, previewDevice.id); data.useHotModuleReload = originalUseHotModuleReload; } })); From 59ea8a645e374999b4db596af733138d7c0b519c Mon Sep 17 00:00:00 2001 From: rosen-vladimirov Date: Mon, 1 Jul 2019 16:26:27 +0300 Subject: [PATCH 08/12] fix: update dependencies to latest rc versions --- lib/controllers/migrate-controller.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/controllers/migrate-controller.ts b/lib/controllers/migrate-controller.ts index 6d7f500bc2..5f6e17d5d2 100644 --- a/lib/controllers/migrate-controller.ts +++ b/lib/controllers/migrate-controller.ts @@ -37,16 +37,16 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC ]; private migrationDependencies: IMigrationDependency[] = [ - { packageName: constants.TNS_CORE_MODULES_NAME, verifiedVersion: "6.0.0-next-2019-06-20-155941-01" }, - { packageName: constants.TNS_CORE_MODULES_WIDGETS_NAME, verifiedVersion: "6.0.0-next-2019-06-20-155941-01" }, - { packageName: "tns-platform-declarations", verifiedVersion: "6.0.0-next-2019-06-27-082418-01" }, + { packageName: constants.TNS_CORE_MODULES_NAME, verifiedVersion: "6.0.0-rc-2019-06-28-175837-02" }, + { packageName: constants.TNS_CORE_MODULES_WIDGETS_NAME, verifiedVersion: "6.0.0" }, + { packageName: "tns-platform-declarations", isDev: true, verifiedVersion: "6.0.0-rc-2019-06-28-175837-02" }, { packageName: "node-sass", isDev: true, verifiedVersion: "4.12.0" }, { packageName: "typescript", isDev: true, verifiedVersion: "3.4.1" }, { packageName: "less", isDev: true, verifiedVersion: "3.9.0" }, { packageName: "nativescript-dev-sass", isDev: true, replaceWith: "node-sass" }, { packageName: "nativescript-dev-typescript", isDev: true, replaceWith: "typescript" }, { packageName: "nativescript-dev-less", isDev: true, replaceWith: "less" }, - { packageName: constants.WEBPACK_PLUGIN_NAME, isDev: true, shouldAddIfMissing: true, verifiedVersion: "0.25.0-next-2019-06-21-150426-03" }, + { packageName: constants.WEBPACK_PLUGIN_NAME, isDev: true, shouldAddIfMissing: true, verifiedVersion: "1.0.0-rc-2019-06-28-134050-01" }, { packageName: "nativescript-camera", verifiedVersion: "4.5.0" }, { packageName: "nativescript-geolocation", verifiedVersion: "5.1.0" }, { packageName: "nativescript-imagepicker", verifiedVersion: "6.2.0" }, @@ -76,8 +76,8 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC get verifiedPlatformVersions(): IDictionary { return { - [this.$devicePlatformsConstants.Android.toLowerCase()]: "6.0.0-2019-06-11-172137-01", - [this.$devicePlatformsConstants.iOS.toLowerCase()]: "6.0.0-2019-06-10-154118-03" + [this.$devicePlatformsConstants.Android.toLowerCase()]: "6.0.0-rc-2019-06-27-172817-03", + [this.$devicePlatformsConstants.iOS.toLowerCase()]: "6.0.0-rc-2019-06-28-105002-01" }; } From a09c8c0f24ffcb28ed70a57a272fa26948cf04f8 Mon Sep 17 00:00:00 2001 From: DimitarTachev Date: Mon, 1 Jul 2019 17:16:49 +0300 Subject: [PATCH 09/12] fix: set the proper root for the auto-generated files glob matching --- lib/controllers/migrate-controller.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/controllers/migrate-controller.ts b/lib/controllers/migrate-controller.ts index 5f6e17d5d2..7bf5981690 100644 --- a/lib/controllers/migrate-controller.ts +++ b/lib/controllers/migrate-controller.ts @@ -165,7 +165,7 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC matchBase: true, nodir: true, absolute: false, - root: projectData.appDirectoryPath + cwd: projectData.appDirectoryPath }; const jsFiles = glob.sync("*.@(js|ts|js.map)", globOptions); @@ -176,7 +176,7 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC const allGeneratedFiles = autoGeneratedJsFiles.concat(autoGeneratedJsMapFiles).concat(autoGeneratedCssFiles); for (const generatedFile of allGeneratedFiles) { - const sourceFile = path.join(projectData.projectDir, generatedFile); + const sourceFile = path.join(projectData.appDirectoryPath, generatedFile); const destinationFile = path.join(backupDir, generatedFile); const destinationFileDir = path.dirname(destinationFile); this.$fs.ensureDirectoryExists(destinationFileDir); From 54e92e2c7df965ed1b3fab1282ef7f790640770c Mon Sep 17 00:00:00 2001 From: sis0k0 Date: Tue, 2 Jul 2019 11:43:37 +0300 Subject: [PATCH 10/12] refactor(migrate): bump the version of {N} vue to 2.3.0-rc.1 --- lib/controllers/migrate-controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/controllers/migrate-controller.ts b/lib/controllers/migrate-controller.ts index 7bf5981690..9913c483e5 100644 --- a/lib/controllers/migrate-controller.ts +++ b/lib/controllers/migrate-controller.ts @@ -64,7 +64,7 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC //TODO update with compatible with webpack only hooks { packageName: "nativescript-plugin-firebase", verifiedVersion: "9.0.1" }, //TODO update with no prerelease version compatible with webpack only hooks - { packageName: "nativescript-vue", verifiedVersion: "2.3.0-rc.0" }, + { packageName: "nativescript-vue", verifiedVersion: "2.3.0-rc.1" }, { packageName: "nativescript-permissions", verifiedVersion: "1.3.0" }, { packageName: "nativescript-cardview", verifiedVersion: "3.2.0" }, { From 84a5a0c05a466c25221e45a5745d146f6e481207 Mon Sep 17 00:00:00 2001 From: fatme Date: Tue, 2 Jul 2019 13:03:59 +0300 Subject: [PATCH 11/12] fix: fix stop livesync when the method is called with empty array Currently when stop method is called with empty array, the livesync process is stopped for all devices but the runOnDeviceStopped event is not emitted. This PR fixes this behavior as ensures the runOnDeviceStopped event will be emitted for all connected devices. --- lib/controllers/run-controller.ts | 2 +- test/controllers/run-controller.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/controllers/run-controller.ts b/lib/controllers/run-controller.ts index 290b9505d6..1237555a06 100644 --- a/lib/controllers/run-controller.ts +++ b/lib/controllers/run-controller.ts @@ -62,7 +62,7 @@ export class RunController extends EventEmitter implements IRunController { // so we cannot await it as this will cause infinite loop. const shouldAwaitPendingOperation = !stopOptions || stopOptions.shouldAwaitAllActions; - const deviceIdentifiersToRemove = deviceIdentifiers || _.map(liveSyncProcessInfo.deviceDescriptors, d => d.identifier); + const deviceIdentifiersToRemove = (deviceIdentifiers && deviceIdentifiers.length) ? deviceIdentifiers : _.map(liveSyncProcessInfo.deviceDescriptors, d => d.identifier); const removedDeviceIdentifiers = _.remove(liveSyncProcessInfo.deviceDescriptors, descriptor => _.includes(deviceIdentifiersToRemove, descriptor.identifier)) .map(descriptor => descriptor.identifier); diff --git a/test/controllers/run-controller.ts b/test/controllers/run-controller.ts index 9dc2e674da..e33fbc4688 100644 --- a/test/controllers/run-controller.ts +++ b/test/controllers/run-controller.ts @@ -240,6 +240,12 @@ describe("RunController", () => { currentDeviceIdentifiers: ["device1", "device2", "device3"], expectedDeviceIdentifiers: ["device1"], deviceIdentifiersToBeStopped: ["device1", "device4"] + }, + { + name: "stops LiveSync operation for all devices when stop method is called with empty array", + currentDeviceIdentifiers: ["device1", "device2", "device3"], + expectedDeviceIdentifiers: ["device1", "device2", "device3"], + deviceIdentifiersToBeStopped: [] } ]; From 46d2cf8bdb4d9fd16246367cac32d91cc4f2dc5b Mon Sep 17 00:00:00 2001 From: fatme Date: Tue, 2 Jul 2019 16:24:35 +0300 Subject: [PATCH 12/12] fix: update the version of nativescript-dev-webpack plugin on migrate command --- lib/controllers/migrate-controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/controllers/migrate-controller.ts b/lib/controllers/migrate-controller.ts index 9913c483e5..67da41c784 100644 --- a/lib/controllers/migrate-controller.ts +++ b/lib/controllers/migrate-controller.ts @@ -46,7 +46,7 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC { packageName: "nativescript-dev-sass", isDev: true, replaceWith: "node-sass" }, { packageName: "nativescript-dev-typescript", isDev: true, replaceWith: "typescript" }, { packageName: "nativescript-dev-less", isDev: true, replaceWith: "less" }, - { packageName: constants.WEBPACK_PLUGIN_NAME, isDev: true, shouldAddIfMissing: true, verifiedVersion: "1.0.0-rc-2019-06-28-134050-01" }, + { packageName: constants.WEBPACK_PLUGIN_NAME, isDev: true, shouldAddIfMissing: true, verifiedVersion: "1.0.0-rc-2019-07-02-161545-02" }, { packageName: "nativescript-camera", verifiedVersion: "4.5.0" }, { packageName: "nativescript-geolocation", verifiedVersion: "5.1.0" }, { packageName: "nativescript-imagepicker", verifiedVersion: "6.2.0" },