Skip to content

Commit 1977063

Browse files
Merge pull request #1762 from NativeScript/vladimirov/merge-rel-master
Merge release in master
2 parents f893fb6 + ada3b96 commit 1977063

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

lib/services/android-project-service.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,23 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
149149
let projectPackageJson: any = this.$fs.readJson(this.$projectData.projectFilePath).wait();
150150

151151
_.each(AndroidProjectService.REQUIRED_DEV_DEPENDENCIES, (dependency: any) => {
152-
let dependencyVersionInProject = projectPackageJson.dependencies[dependency.name] || projectPackageJson.devDependencies[dependency.name];
152+
let dependencyVersionInProject = (projectPackageJson.dependencies && projectPackageJson.dependencies[dependency.name]) ||
153+
(projectPackageJson.devDependencies && projectPackageJson.devDependencies[dependency.name]);
153154

154155
if (!dependencyVersionInProject) {
155156
this.$npm.install(`${dependency.name}@${dependency.version}`, this.$projectData.projectDir, npmConfig).wait();
156-
} else if (!semver.satisfies(dependencyVersionInProject, dependency.version)) {
157-
this.$errors.failWithoutHelp(`Your project have installed ${dependency.name} version ${dependencyVersionInProject} but Android platform requires version ${dependency.version}.`);
157+
} else {
158+
let cleanedVerson = semver.clean(dependencyVersionInProject);
159+
160+
// The plugin version is not valid. Check node_modules for the valid version.
161+
if (!cleanedVerson) {
162+
let pathToPluginPackageJson = path.join(this.$projectData.projectDir, constants.NODE_MODULES_FOLDER_NAME, dependency.name, constants.PACKAGE_JSON_FILE_NAME);
163+
dependencyVersionInProject = this.$fs.exists(pathToPluginPackageJson).wait() && this.$fs.readJson(pathToPluginPackageJson).wait().version;
164+
}
165+
166+
if (!semver.satisfies(dependencyVersionInProject || cleanedVerson, dependency.version)) {
167+
this.$errors.failWithoutHelp(`Your project have installed ${dependency.name} version ${cleanedVerson} but Android platform requires version ${dependency.version}.`);
168+
}
158169
}
159170
});
160171
} else {

0 commit comments

Comments
 (0)