
File name
Commit message
Commit date
2023-03-02
File name
Commit message
Commit date
File name
Commit message
Commit date
find-root#
recursively find the closest package.json
usage#
Say you want to check if the directory name of a project matches its
module name in package.json:
const path = require('path')
const findRoot = require('find-root')
// from a starting directory, recursively search for the nearest
// directory containing package.json
const root = findRoot('/Users/jsdnxx/Code/find-root/tests')
// => '/Users/jsdnxx/Code/find-root'
const dirname = path.basename(root)
console.log('is it the same?')
console.log(dirname === require(path.join(root, 'package.json')).name)
You can also pass in a custom check function (by default, it checks for the
existence of package.json
in a directory). In this example, we traverse up
to find the root of a git repo:
const fs = require('fs')
const gitRoot = findRoot('/Users/jsdnxx/Code/find-root/tests', function (dir) {
return fs.existsSync(path.resolve(dir, '.git'))
})
api#
findRoot: (startingPath : string, check?: (dir: string) => boolean) => string
#
Returns the path for the nearest directory to startingPath
containing
a package.json
file, eg /foo/module
.
If check
is provided, returns the path for the closest parent directory
where check
returns true.
Throws an error if no package.json
is found at any level in thestartingPath
.
installation#
> npm install find-root
running the tests#
From package root:
> npm install
> npm test
contributors#
- jsdnxx
license#
MIT. (c) 2017 jsdnxx