Skip to content

Commit 0e89909

Browse files
committed
add exception handling when installing packages already present in the project
1 parent 3299f82 commit 0e89909

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

lib/commands/test-init.ts

+14-7
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,23 @@ class TestInitCommand implements ICommand {
3838
optional: false,
3939
});
4040

41-
let modulePath = path.join(projectDir, "node_modules", mod);
42-
let modulePackageJsonPath = path.join(modulePath, "package.json");
43-
let modulePackageJsonContent = this.$fs.readJson(modulePackageJsonPath);
44-
let modulePeerDependencies = modulePackageJsonContent.peerDependencies || {};
41+
const modulePath = path.join(projectDir, "node_modules", mod);
42+
const modulePackageJsonPath = path.join(modulePath, "package.json");
43+
const modulePackageJsonContent = this.$fs.readJson(modulePackageJsonPath);
44+
const modulePeerDependencies = modulePackageJsonContent.peerDependencies || {};
4545

4646
for (let peerDependency in modulePeerDependencies) {
4747
let dependencyVersion = modulePeerDependencies[peerDependency] || "*";
48-
await this.$npm.install(`${peerDependency}@${dependencyVersion}`, projectDir, {
49-
'save-dev': true
50-
});
48+
49+
// catch errors when a peerDependency is already installed
50+
// e.g karma is installed; karma-jasmine depends on karma and will try to install it again
51+
try {
52+
await this.$npm.install(`${peerDependency}@${dependencyVersion}`, projectDir, {
53+
'save-dev': true
54+
});
55+
} catch (e) {
56+
this.$logger.info(e.message);
57+
}
5158
}
5259
}
5360

0 commit comments

Comments
 (0)