Wondering what’s next for npm?Check out our public roadmap! »

    find-root
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/find-root package

    1.1.0 • Public • Published

    find-root

    recursively find the closest package.json

    Build Status

    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 the startingPath.

    installation

    > npm install find-root

    running the tests

    From package root:

    > npm install
    > npm test

    contributors

    • jsdnxx

    license

    MIT. (c) 2017 jsdnxx

    Install

    npm i find-root

    DownloadsWeekly Downloads

    4,978,396

    Version

    1.1.0

    License

    MIT

    Last publish

    Collaborators