find-dependency
v1.3.3
Published
Find the path to the package that will be used by `require`.
Downloads
557
Readme
find-dependency
Find the path to the package that will be used by require
.
const findDependency = require('find-dependency');
// Search current directory, all parent directories, and all $NODE_PATH directories.
const packagePath = findDependency('foo', process.cwd());
If only the import path is given, process.cwd()
is used.
You can also skip looking for a global installation.
findDependency('foo', {
// Both are optional.
skipGlobal: true,
cwd: process.cwd(),
})
How it works
When you call findDependency('foo', __dirname)
:
- Check if
__dirname/node_modules/foo
is a directory - Check if
__dirname/../node_modules/foo
is a directory - Continue adding
..
until the home directory is checked - Check every directory in
process.env.NODE_PATH
(eg:global_path/foo
) - At any point, if the checked path exists, return it
This simulates how require
resolves the package path, before checking the main
field of its package.json
file.
New in v1.1.0: No dependencies, and symlinks are followed.