Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRebecca Turner <me@re-becca.org>2017-05-25 23:36:43 +0300
committerRebecca Turner <me@re-becca.org>2017-05-26 04:55:33 +0300
commit4c99147ab46edd7c6a4f5b06e000f2a5e4c366a7 (patch)
tree746f754ee7bc7ebee0bbc3a6024d655ca0b64e87 /lib
parent72ce47ce5b0d176b3268825dbb9aa1da4435462c (diff)
remove-deps: Update dependencies list even if we're not saving
Diffstat (limited to 'lib')
-rw-r--r--lib/install/deps.js22
1 files changed, 8 insertions, 14 deletions
diff --git a/lib/install/deps.js b/lib/install/deps.js
index cc6420ee0..c0fe905d4 100644
--- a/lib/install/deps.js
+++ b/lib/install/deps.js
@@ -301,23 +301,17 @@ exports.removeDeps = function (args, tree, saveToDependencies, next) {
var pkgName = moduleName(pkg)
var toRemove = tree.children.filter(moduleNameMatches(pkgName))
var pkgToRemove = toRemove[0] || createChild({package: {name: pkgName}})
+ var saveType = getSaveType(tree, pkg) || 'dependencies'
if (tree.isTop && saveToDependencies) {
- pkgToRemove.save = getSaveType(tree, pkg)
- let existing = false
- if (tree.package[pkgToRemove.save][pkgName]) {
- existing = true
- delete tree.package[pkgToRemove.save][pkgName]
- }
- if (existing && pkgToRemove.save === 'optionalDependencies') {
- if (tree.package.dependencies[pkgName]) {
- existing = true
- delete tree.package.dependencies[pkgName]
- }
- }
- if (existing) {
- replaceModuleByPath(tree, 'removedChildren', pkgToRemove)
+ pkgToRemove.save = saveType
+ }
+ if (tree.package[saveType][pkgName]) {
+ delete tree.package[saveType][pkgName]
+ if (saveType === 'optionalDependencies' && tree.package.dependencies[pkgName]) {
+ delete tree.package.dependencies[pkgName]
}
}
+ replaceModuleByPath(tree, 'removedChildren', pkgToRemove)
for (let parent of pkgToRemove.requiredBy) {
parent.requires = parent.requires.filter((child) => child !== pkgToRemove)
}