PATH:
opt
/
alt
/
alt-nodejs6
/
root
/
usr
/
lib
/
node_modules
/
npm
/
lib
/
install
'use strict' module.exports = isExtraneous function isExtraneous (tree) { var result = !isNotExtraneous(tree) return result } function isNotRequired (tree) { return tree.requiredBy && tree.requiredBy.length === 0 } function parentHasNoPjson (tree) { return tree.parent && tree.parent.isTop && tree.parent.error } function topHasNoPjson (tree) { var top = tree while (!top.isTop) top = top.parent return top.error } function isNotExtraneous (tree, isCycle) { if (!isCycle) isCycle = {} if (tree.isTop || tree.userRequired) { return true } else if (isNotRequired(tree) && parentHasNoPjson(tree)) { return true } else if (isCycle[tree.path]) { return topHasNoPjson(tree) } else { isCycle[tree.path] = true return tree.requiredBy && tree.requiredBy.some(function (node) { return isNotExtraneous(node, Object.create(isCycle)) }) } }
[-] deps.js
[edit]
[-] inflate-shrinkwrap.js
[edit]
[-] and-add-parent-to-errors.js
[edit]
[-] report-optional-failure.js
[edit]
[-] inflate-bundled.js
[edit]
[-] read-shrinkwrap.js
[edit]
[+]
action
[-] and-ignore-errors.js
[edit]
[-] and-finish-tracker.js
[edit]
[-] validate-args.js
[edit]
[-] update-package-json.js
[edit]
[-] actions.js
[edit]
[+]
..
[-] is-dev-dep.js
[edit]
[-] save.js
[edit]
[-] access-error.js
[edit]
[-] copy-tree.js
[edit]
[-] filter-invalid-actions.js
[edit]
[-] node.js
[edit]
[-] writable.js
[edit]
[-] is-extraneous.js
[edit]
[-] decompose-actions.js
[edit]
[-] validate-tree.js
[edit]
[-] is-fs-access-available.js
[edit]
[-] is-registry-specifier.js
[edit]
[-] flatten-tree.js
[edit]
[-] mutate-into-logical-tree.js
[edit]
[-] is-opt-dep.js
[edit]
[-] realize-shrinkwrap-specifier.js
[edit]
[-] exists.js
[edit]
[-] is-prod-dep.js
[edit]
[-] diff-trees.js
[edit]
[-] check-permissions.js
[edit]
[-] build-path.js
[edit]