Skip to content

Search up the file tree (and $NODE_PATH) for a package by its require path

License

Notifications You must be signed in to change notification settings

aleclarson/find-dependency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Search up the file tree (and $NODE_PATH) for a package by its require path

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published