Skip to content

Commit 3c2cdf7

Browse files
committed
fix(migrate): show warning for nativescript-dev-less as its not supported out of the box in the Bundle workflow
1 parent 527b4f0 commit 3c2cdf7

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

lib/controllers/migrate-controller.ts

+14-9
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,9 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC
4343
{ packageName: "tns-platform-declarations", isDev: true, verifiedVersion: "6.0.0-rc-2019-06-28-175837-02" },
4444
{ packageName: "node-sass", isDev: true, verifiedVersion: "4.12.0" },
4545
{ packageName: "typescript", isDev: true, verifiedVersion: "3.4.1" },
46-
{ packageName: "less", isDev: true, verifiedVersion: "3.9.0" },
4746
{ packageName: "nativescript-dev-sass", isDev: true, replaceWith: "node-sass" },
4847
{ packageName: "nativescript-dev-typescript", isDev: true, replaceWith: "typescript" },
49-
{ packageName: "nativescript-dev-less", isDev: true, replaceWith: "less" },
48+
{ packageName: "nativescript-dev-less", isDev: true, remove: true, warning: "LESS CSS is not supported out of the box. In order to enable it, follow the steps in this feature request: https://github.com/NativeScript/nativescript-dev-webpack/issues/967" },
5049
{ packageName: constants.WEBPACK_PLUGIN_NAME, isDev: true, shouldAddIfMissing: true, verifiedVersion: "1.0.0-rc-2019-07-02-161545-02" },
5150
{ packageName: "nativescript-camera", verifiedVersion: "4.5.0" },
5251
{ packageName: "nativescript-geolocation", verifiedVersion: "5.1.0" },
@@ -134,7 +133,7 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC
134133
return true;
135134
}
136135

137-
if (hasDependency && dependency.replaceWith) {
136+
if (hasDependency && (dependency.replaceWith || dependency.remove)) {
138137
return true;
139138
}
140139

@@ -259,15 +258,21 @@ export class MigrateController extends UpdateControllerBase implements IMigrateC
259258

260259
private async migrateDependency(dependency: IMigrationDependency, projectData: IProjectData): Promise<void> {
261260
const hasDependency = this.hasDependency(dependency, projectData);
261+
if (dependency.warning) {
262+
this.$logger.warn(dependency.warning);
263+
}
262264

263-
if (hasDependency && dependency.replaceWith) {
265+
if (hasDependency && (dependency.replaceWith || dependency.remove)) {
264266
this.$pluginsService.removeFromPackageJson(dependency.packageName, projectData.projectDir);
265-
const replacementDep = _.find(this.migrationDependencies, migrationPackage => migrationPackage.packageName === dependency.replaceWith);
266-
if (!replacementDep) {
267-
this.$errors.failWithoutHelp("Failed to find replacement dependency.");
267+
if (dependency.replaceWith) {
268+
const replacementDep = _.find(this.migrationDependencies, migrationPackage => migrationPackage.packageName === dependency.replaceWith);
269+
if (!replacementDep) {
270+
this.$errors.failWithoutHelp("Failed to find replacement dependency.");
271+
}
272+
this.$logger.info(`Replacing '${dependency.packageName}' with '${replacementDep.packageName}'.`);
273+
this.$pluginsService.addToPackageJson(replacementDep.packageName, replacementDep.verifiedVersion, replacementDep.isDev, projectData.projectDir);
268274
}
269-
this.$logger.info(`Replacing '${dependency.packageName}' with '${replacementDep.packageName}'.`);
270-
this.$pluginsService.addToPackageJson(replacementDep.packageName, replacementDep.verifiedVersion, replacementDep.isDev, projectData.projectDir);
275+
271276
return;
272277
}
273278

lib/definitions/migrate.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ interface IDependency {
1111
interface IMigrationDependency extends IDependency {
1212
shouldRemove?: boolean;
1313
replaceWith?: string;
14+
remove?: boolean;
15+
warning?: string;
1416
verifiedVersion?: string;
1517
shouldAddIfMissing?: boolean;
1618
shouldMigrateAction?: (projectData: IProjectData) => boolean;

0 commit comments

Comments
 (0)