// prune extraneous packages. module.exports = prune module.exports.Pruner = Pruner prune.usage = 'npm prune [[<@scope>/]<pkg>...] [--production]' var npm = require('./npm.js') var log = require('npmlog') var util = require('util') var moduleName = require('./utils/module-name.js') var Installer = require('./install.js').Installer var isExtraneous = require('./install/is-extraneous.js') var isOnlyDev = require('./install/is-only-dev.js') var removeDeps = require('./install/deps.js').removeDeps var loadExtraneous = require('./install/deps.js').loadExtraneous var chain = require('slide').chain var computeMetadata = require('./install/deps.js').computeMetadata prune.completion = require('./utils/completion/installed-deep.js') function prune (args, cb) { var dryrun = !!npm.config.get('dry-run') new Pruner('.', dryrun, args).run(cb) } function Pruner (where, dryrun, args) { Installer.call(this, where, dryrun, args) this.autoPrune = true } util.inherits(Pruner, Installer) Pruner.prototype.loadAllDepsIntoIdealTree = function (cb) { log.silly('uninstall', 'loadAllDepsIntoIdealTree') var cg = this.progress['loadIdealTree:loadAllDepsIntoIdealTree'] var steps = [] computeMetadata(this.idealTree) var self = this var excludeDev = npm.config.get('production') || /^prod(uction)?$/.test(npm.config.get('only')) function shouldPrune (child) { if (isExtraneous(child)) return true if (!excludeDev) return false return isOnlyDev(child) } function getModuleName (child) { // wrapping because moduleName doesn't like extra args and we're called // from map. return moduleName(child) } function matchesArg (name) { return self.args.length === 0 || self.args.indexOf(name) !== -1 } function nameObj (name) { return {name: name} } var toPrune = this.idealTree.children.filter(shouldPrune).map(getModuleName).filter(matchesArg).map(nameObj) steps.push( [removeDeps, toPrune, this.idealTree, null], [loadExtraneous, this.idealTree, cg.newGroup('loadExtraneous')]) chain(steps, cb) } Pruner.prototype.runPreinstallTopLevelLifecycles = function (cb) { cb() } Pruner.prototype.runPostinstallTopLevelLifecycles = function (cb) { cb() } Pruner.prototype.saveToDependencies = function (cb) { cb() }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
auth | Folder | 0755 |
|
|
config | Folder | 0755 |
|
|
doctor | Folder | 0755 |
|
|
install | Folder | 0755 |
|
|
search | Folder | 0755 |
|
|
utils | Folder | 0755 |
|
|
access.js | File | 5.54 KB | 0644 |
|
adduser.js | File | 1.31 KB | 0644 |
|
audit.js | File | 10.56 KB | 0644 |
|
bin.js | File | 515 B | 0644 |
|
bugs.js | File | 864 B | 0644 |
|
build.js | File | 4.44 KB | 0644 |
|
cache.js | File | 4.66 KB | 0644 |
|
ci.js | File | 1.31 KB | 0644 |
|
completion.js | File | 7.11 KB | 0644 |
|
config.js | File | 7.43 KB | 0644 |
|
dedupe.js | File | 4.88 KB | 0644 |
|
deprecate.js | File | 2.11 KB | 0644 |
|
dist-tag.js | File | 4.11 KB | 0644 |
|
docs.js | File | 1.04 KB | 0644 |
|
doctor.js | File | 3.98 KB | 0644 |
|
edit.js | File | 1.37 KB | 0644 |
|
explore.js | File | 1.67 KB | 0644 |
|
fetch-package-metadata.js | File | 3.97 KB | 0644 |
|
fetch-package-metadata.md | File | 1.77 KB | 0644 |
|
fund.js | File | 4.91 KB | 0644 |
|
get.js | File | 235 B | 0644 |
|
help-search.js | File | 5.64 KB | 0644 |
|
help.js | File | 6.35 KB | 0644 |
|
hook.js | File | 4.62 KB | 0644 |
|
init.js | File | 2.74 KB | 0644 |
|
install-ci-test.js | File | 486 B | 0644 |
|
install-test.js | File | 507 B | 0644 |
|
install.js | File | 36.47 KB | 0644 |
|
link.js | File | 5.6 KB | 0644 |
|
logout.js | File | 1.26 KB | 0644 |
|
ls.js | File | 16.09 KB | 0644 |
|
npm.js | File | 14.37 KB | 0644 |
|
org.js | File | 4.18 KB | 0644 |
|
outdated.js | File | 12.28 KB | 0644 |
|
owner.js | File | 6.6 KB | 0644 |
|
pack.js | File | 11.79 KB | 0644 |
|
ping.js | File | 1.11 KB | 0644 |
|
prefix.js | File | 330 B | 0644 |
|
profile.js | File | 11.13 KB | 0644 |
|
prune.js | File | 2.23 KB | 0644 |
|
publish.js | File | 5.14 KB | 0644 |
|
rebuild.js | File | 2.09 KB | 0644 |
|
repo.js | File | 1.44 KB | 0644 |
|
restart.js | File | 64 B | 0644 |
|
root.js | File | 320 B | 0644 |
|
run-script.js | File | 5.41 KB | 0644 |
|
search.js | File | 3.36 KB | 0644 |
|
set.js | File | 276 B | 0644 |
|
shrinkwrap.js | File | 9.82 KB | 0644 |
|
star.js | File | 2.11 KB | 0644 |
|
stars.js | File | 1.03 KB | 0644 |
|
start.js | File | 62 B | 0644 |
|
stop.js | File | 61 B | 0644 |
|
substack.js | File | 509 B | 0644 |
|
team.js | File | 4.61 KB | 0644 |
|
test.js | File | 374 B | 0644 |
|
token.js | File | 6.66 KB | 0644 |
|
unbuild.js | File | 4.27 KB | 0644 |
|
uninstall.js | File | 2.21 KB | 0644 |
|
unpublish.js | File | 3.51 KB | 0644 |
|
update.js | File | 2.16 KB | 0644 |
|
version.js | File | 9.79 KB | 0644 |
|
view.js | File | 15.11 KB | 0644 |
|
visnup.js | File | 4.01 KB | 0644 |
|
whoami.js | File | 1.77 KB | 0644 |
|
xmas.js | File | 1.62 KB | 0644 |
|