X7ROOT File Manager
Current Path:
/opt/alt/alt-nodejs11/root/usr/lib/node_modules/npm/lib
opt
/
alt
/
alt-nodejs11
/
root
/
usr
/
lib
/
node_modules
/
npm
/
lib
/
ðŸ“
..
📄
access.js
(5.53 KB)
📄
adduser.js
(1.29 KB)
📄
audit.js
(10.43 KB)
ðŸ“
auth
📄
bin.js
(515 B)
📄
bugs.js
(864 B)
📄
build.js
(4.44 KB)
📄
cache.js
(4.66 KB)
📄
ci.js
(471 B)
📄
completion.js
(7.11 KB)
ðŸ“
config
📄
config.js
(7.42 KB)
📄
dedupe.js
(4.88 KB)
📄
deprecate.js
(2.11 KB)
📄
dist-tag.js
(4.09 KB)
📄
docs.js
(1.04 KB)
ðŸ“
doctor
📄
doctor.js
(3.97 KB)
📄
edit.js
(1.37 KB)
📄
explore.js
(1.63 KB)
📄
fetch-package-metadata.js
(3.81 KB)
📄
fetch-package-metadata.md
(1.77 KB)
📄
get.js
(235 B)
📄
help-search.js
(5.64 KB)
📄
help.js
(6.33 KB)
📄
hook.js
(4.21 KB)
📄
init.js
(2.74 KB)
ðŸ“
install
📄
install-ci-test.js
(486 B)
📄
install-test.js
(507 B)
📄
install.js
(34.75 KB)
📄
link.js
(5.6 KB)
📄
logout.js
(1.26 KB)
📄
ls.js
(15.79 KB)
📄
npm.js
(12.89 KB)
📄
org.js
(4.18 KB)
📄
outdated.js
(11.73 KB)
📄
owner.js
(6.6 KB)
📄
pack.js
(11.72 KB)
📄
ping.js
(1.11 KB)
📄
prefix.js
(330 B)
📄
profile.js
(11.13 KB)
📄
prune.js
(2.23 KB)
📄
publish.js
(5.14 KB)
📄
rebuild.js
(2.09 KB)
📄
repo.js
(1.44 KB)
📄
restart.js
(64 B)
📄
root.js
(316 B)
📄
run-script.js
(5.4 KB)
ðŸ“
search
📄
search.js
(3.36 KB)
📄
set.js
(276 B)
📄
shrinkwrap.js
(9 KB)
📄
star.js
(2.11 KB)
📄
stars.js
(1.03 KB)
📄
start.js
(62 B)
📄
stop.js
(61 B)
📄
substack.js
(509 B)
📄
team.js
(4.54 KB)
📄
test.js
(374 B)
📄
token.js
(6.84 KB)
📄
unbuild.js
(4.11 KB)
📄
uninstall.js
(2.21 KB)
📄
unpublish.js
(3.44 KB)
📄
update.js
(2.19 KB)
ðŸ“
utils
📄
version.js
(9.5 KB)
📄
view.js
(15.06 KB)
📄
visnup.js
(4.01 KB)
📄
whoami.js
(1.77 KB)
📄
xmas.js
(1.58 KB)
Editing: dedupe.js
var util = require('util') var path = require('path') var validate = require('aproba') var without = require('lodash.without') var asyncMap = require('slide').asyncMap var chain = require('slide').chain var npa = require('npm-package-arg') var log = require('npmlog') var npm = require('./npm.js') var Installer = require('./install.js').Installer var findRequirement = require('./install/deps.js').findRequirement var earliestInstallable = require('./install/deps.js').earliestInstallable var checkPermissions = require('./install/check-permissions.js') var decomposeActions = require('./install/decompose-actions.js') var loadExtraneous = require('./install/deps.js').loadExtraneous var computeMetadata = require('./install/deps.js').computeMetadata var sortActions = require('./install/diff-trees.js').sortActions var moduleName = require('./utils/module-name.js') var packageId = require('./utils/package-id.js') var childPath = require('./utils/child-path.js') var usage = require('./utils/usage') var getRequested = require('./install/get-requested.js') module.exports = dedupe module.exports.Deduper = Deduper dedupe.usage = usage( 'dedupe', 'npm dedupe' ) function dedupe (args, cb) { validate('AF', arguments) // the /path/to/node_modules/.. var where = path.resolve(npm.dir, '..') var dryrun = false if (npm.command.match(/^find/)) dryrun = true if (npm.config.get('dry-run')) dryrun = true if (dryrun && !npm.config.get('json')) npm.config.set('parseable', true) new Deduper(where, dryrun).run(cb) } function Deduper (where, dryrun) { validate('SB', arguments) Installer.call(this, where, dryrun, []) this.noPackageJsonOk = true this.topLevelLifecycles = false } util.inherits(Deduper, Installer) Deduper.prototype.loadIdealTree = function (cb) { validate('F', arguments) log.silly('install', 'loadIdealTree') var self = this chain([ [this.newTracker(this.progress.loadIdealTree, 'cloneCurrentTree')], [this, this.cloneCurrentTreeToIdealTree], [this, this.finishTracker, 'cloneCurrentTree'], [this.newTracker(this.progress.loadIdealTree, 'loadAllDepsIntoIdealTree', 10)], [ function (next) { loadExtraneous(self.idealTree, self.progress.loadAllDepsIntoIdealTree, next) } ], [this, this.finishTracker, 'loadAllDepsIntoIdealTree'], [this, andComputeMetadata(this.idealTree)] ], cb) } function andComputeMetadata (tree) { return function (next) { next(null, computeMetadata(tree)) } } Deduper.prototype.generateActionsToTake = function (cb) { validate('F', arguments) log.silly('dedupe', 'generateActionsToTake') chain([ [this.newTracker(log, 'hoist', 1)], [hoistChildren, this.idealTree, this.differences], [this, this.finishTracker, 'hoist'], [this.newTracker(log, 'sort-actions', 1)], [this, function (next) { this.differences = sortActions(this.differences) next() }], [this, this.finishTracker, 'sort-actions'], [checkPermissions, this.differences], [decomposeActions, this.differences, this.todo] ], cb) } function move (node, hoistTo, diff) { node.parent.children = without(node.parent.children, node) hoistTo.children.push(node) node.fromPath = node.path node.path = childPath(hoistTo.path, node) node.parent = hoistTo if (!diff.filter(function (action) { return action[0] === 'move' && action[1] === node }).length) { diff.push(['move', node]) } } function moveRemainingChildren (node, diff) { node.children.forEach(function (child) { move(child, node, diff) moveRemainingChildren(child, diff) }) } function remove (child, diff, done) { remove_(child, diff, new Set(), done) } function remove_ (child, diff, seen, done) { if (seen.has(child)) return done() seen.add(child) diff.push(['remove', child]) child.parent.children = without(child.parent.children, child) asyncMap(child.children, function (child, next) { remove_(child, diff, seen, next) }, done) } function hoistChildren (tree, diff, next) { hoistChildren_(tree, diff, new Set(), next) } function hoistChildren_ (tree, diff, seen, next) { validate('OAOF', arguments) if (seen.has(tree)) return next() seen.add(tree) asyncMap(tree.children, function (child, done) { if (!tree.parent || child.fromBundle || child.package._inBundle) return hoistChildren_(child, diff, seen, done) var better = findRequirement(tree.parent, moduleName(child), getRequested(child) || npa(packageId(child))) if (better) { return chain([ [remove, child, diff], [andComputeMetadata(tree)] ], done) } var hoistTo = earliestInstallable(tree, tree.parent, child.package, log) if (hoistTo) { move(child, hoistTo, diff) chain([ [andComputeMetadata(hoistTo)], [hoistChildren_, child, diff, seen], [ function (next) { moveRemainingChildren(child, diff) next() } ] ], done) } else { done() } }, next) }
Upload File
Create Folder