pkgresolve
Resolve a dependency from within the context of another package.
Useful for hacks, monkeypatching or wrappers that require manipulation of the exact dependency that would be loaded by a package.
Installation
npm install --save pkgresolveExample
var resolve = require('pkgresolve')
// Resolve 'through' from locally installed 'tape'
resolve('through').from('tape', function(err, pkgPath) {
// pkgPath - path to through or null
})
// Resolve 'npmconf' from globally installed 'npm'
resolve('npmconf').fromGlobal('npm', function(err, pkgPath) {
// pkgPath - path to npmconf or null
})CLI
# Resolve 'through' from locally installed 'tape'
pkgresolve tape through
# Resolve 'npmconf' from globally installed 'npm'
pkgresolve --global npm npmconfWhy not require('parent/node_modules/child')?
Due to deduplication, child is not guaranteed to exist at that
location. You don't even need to call npm dedupe for this to happen –
npm will not install something that is already installed in the
hierarchy. pkgresolve is a more robust method.
Use Responsibly.
This intentially breaks the encapsulation provided by node/npm's module system. Don't use this unless you have to.
See Also
License
MIT