Skip to content

Commit 94cd768

Browse files
committed
added devDependencies to package.json diff
1 parent e777918 commit 94cd768

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

lib/node-package-manager.ts

+18-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ export class NodePackageManager implements INodePackageManager {
3030
for(let name in jsonContentBefore.dependencies) {
3131
dependenciesBefore.push(name);
3232
}
33+
if(jsonContentBefore.devDependencies) {
34+
for(let devName in jsonContentBefore.devDependencies) {
35+
dependenciesBefore.push(devName);
36+
}
37+
}
3338
}
3439

3540
let flags = this.getFlagsString(config, true);
@@ -46,6 +51,11 @@ export class NodePackageManager implements INodePackageManager {
4651
for(let name in jsonContentAfter.dependencies) {
4752
dependenciesAfter.push(name);
4853
}
54+
if(jsonContentAfter.devDependencies) {
55+
for(let devName in jsonContentAfter.devDependencies) {
56+
dependenciesAfter.push(devName);
57+
}
58+
}
4959
}
5060

5161
/** This diff is done in case the installed pakcage is a URL address, a path to local directory or a .tgz file
@@ -54,11 +64,18 @@ export class NodePackageManager implements INodePackageManager {
5464
* The solution is to compare package.json project dependencies before and after install and get the name of the installed package,
5565
* even if it's installed through local path or URL. If command installes more than one package, only the package originally installed is returned.
5666
*/
57-
let diff = _(jsonContentAfter.dependencies)
67+
let dependencyDiff = _(jsonContentAfter.dependencies)
5868
.omitBy((val: string, key: string) => jsonContentBefore && jsonContentBefore.dependencies && jsonContentBefore.dependencies[key] && jsonContentBefore.dependencies[key] === val)
5969
.keys()
6070
.value();
6171

72+
let devDependencyDiff = _(jsonContentAfter.devDependencies)
73+
.omitBy((val: string, key: string) => jsonContentBefore && jsonContentBefore.devDependencies && jsonContentBefore.devDependencies[key] && jsonContentBefore.devDependencies[key] === val)
74+
.keys()
75+
.value();
76+
77+
let diff = dependencyDiff.concat(devDependencyDiff);
78+
6279
if(diff.length <= 0 && dependenciesBefore.length === dependenciesAfter.length && packageName !== pathToSave) {
6380
this.$errors.failWithoutHelp(`The plugin ${packageName} is already installed`);
6481
}

0 commit comments

Comments
 (0)