diff options
author | Forrest L Norvell <forrest@npmjs.com> | 2015-04-24 03:30:29 +0300 |
---|---|---|
committer | Forrest L Norvell <forrest@npmjs.com> | 2015-04-24 03:30:29 +0300 |
commit | f2fe82887a8ee8764dff5dab70e9e744849fd264 (patch) | |
tree | a619996a3b193544230da06c368b458098561a9b /lib/install.js | |
parent | 9ad210042242e51d52b2a8b633d8e59248f5faa4 (diff) |
install: less closure for devDependencies
Diffstat (limited to 'lib/install.js')
-rw-r--r-- | lib/install.js | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/install.js b/lib/install.js index 7d9cf63eb..d95cc1571 100644 --- a/lib/install.js +++ b/lib/install.js @@ -687,8 +687,6 @@ function installMany (what, where, context, cb) { var parent = data - var d = data.dependencies || {} - // if we're explicitly installing "what" into "where", then the shrinkwrap // for "where" doesn't apply. This would be the case if someone were adding // a new package to a shrinkwrapped package. (data.dependencies will not be @@ -696,15 +694,13 @@ function installMany (what, where, context, cb) { // there's no harm in using that.) if (context.explicit) wrap = null - var getVersion = function (name) { - return d[name] || (data.devDependencies && data.devDependencies[name]) || "*" - } - + var deps = data.dependencies || {} + var devDeps = data.devDependencies || {} // what is a list of things. // resolve each one. asyncMap( what - , targetResolver(where, context, d, getVersion) + , targetResolver(where, context, deps, devDeps) , function (er, targets) { if (er) return cb(er) @@ -779,7 +775,7 @@ function installMany (what, where, context, cb) { }) } -function targetResolver (where, context, deps, getVersion) { +function targetResolver (where, context, deps, devDeps) { var alreadyInstalledManually = [] , resolveLeft = 0 , nm = path.resolve(where, "node_modules") @@ -812,7 +808,7 @@ function targetResolver (where, context, deps, getVersion) { // otherwise, make sure that it's a semver match with what we want. var bd = parent.bundleDependencies var isBundled = bd && bd.indexOf(d.name) !== -1 - var expectedVersion = getVersion(d.name) + var expectedVersion = deps[d.name] || (devDeps && devDeps[d.name]) || "*" var currentIsSatisfactory = semver.satisfies(d.version, expectedVersion, true) if (isBundled || currentIsSatisfactory || deps[d.name] === d._resolved) { return cb(null, d.name) |