X7ROOT File Manager
Current Path:
/opt/alt/alt-nodejs12/root/usr/lib/node_modules/npm/lib
opt
/
alt
/
alt-nodejs12
/
root
/
usr
/
lib
/
node_modules
/
npm
/
lib
/
??
..
??
access.js
(5.54 KB)
??
adduser.js
(1.31 KB)
??
audit.js
(10.56 KB)
??
auth
??
bin.js
(515 B)
??
bugs.js
(864 B)
??
build.js
(4.44 KB)
??
cache.js
(4.66 KB)
??
ci.js
(1.31 KB)
??
completion.js
(7.11 KB)
??
config
??
config.js
(7.43 KB)
??
dedupe.js
(4.88 KB)
??
deprecate.js
(2.11 KB)
??
dist-tag.js
(4.11 KB)
??
docs.js
(1.04 KB)
??
doctor
??
doctor.js
(3.98 KB)
??
edit.js
(1.37 KB)
??
explore.js
(1.67 KB)
??
fetch-package-metadata.js
(3.97 KB)
??
fetch-package-metadata.md
(1.77 KB)
??
fund.js
(4.91 KB)
??
get.js
(235 B)
??
help-search.js
(5.64 KB)
??
help.js
(6.35 KB)
??
hook.js
(4.62 KB)
??
init.js
(2.74 KB)
??
install
??
install-ci-test.js
(486 B)
??
install-test.js
(507 B)
??
install.js
(36.47 KB)
??
link.js
(5.6 KB)
??
logout.js
(1.26 KB)
??
ls.js
(16.09 KB)
??
npm.js
(14.37 KB)
??
org.js
(4.18 KB)
??
outdated.js
(12.28 KB)
??
owner.js
(6.6 KB)
??
pack.js
(11.79 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
(320 B)
??
run-script.js
(5.41 KB)
??
search
??
search.js
(3.36 KB)
??
set.js
(276 B)
??
shrinkwrap.js
(9.82 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.61 KB)
??
test.js
(374 B)
??
token.js
(6.66 KB)
??
unbuild.js
(4.27 KB)
??
uninstall.js
(2.21 KB)
??
unpublish.js
(3.51 KB)
??
update.js
(2.16 KB)
??
utils
??
version.js
(9.79 KB)
??
view.js
(15.11 KB)
??
visnup.js
(4.01 KB)
??
whoami.js
(1.77 KB)
??
xmas.js
(1.62 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