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

2.0.0 • Public • Published

find-pkg-dir

npm version Build Status codecov

Find the root directory of a Node.js project from a given path

const findPkgDir = require('find-pkg-dir');
 
// When the /Users/shinnn/foo directory contains a package.json file:
 
findPkgDir('/Users/shinnn/foo'); //=> '/Users/shinnn/foo'
findPkgDir('/Users/shinnn/foo/bar'); //=> '/Users/shinnn/foo'
findPkgDir('/Users/shinnn/foo/bar/baz'); //=> '/Users/shinnn/foo'

Unlike the prior arts,

Installation

Use npm.

npm install find-pkg-dir

API

const findPkgDir = require('find-pkg-dir');

findPkgDir(path)

path: string (a path to start searching from)
Return: string (absolute path) or null

It finds the first directory containing a package.json file, recursively looking up, starting with the given path.

When it cannot find any package.json files finally, returns null.

findPkgDir('path/of/non/nodejs/project'); //=> null

Benchmark

find-pkg-dir (this project):
Find from the current directory          6.514971999917179 ms/op avg.
Find from the deep directory           301.970978999976069 ms/op avg.
Resolve symlinks                         4.765490400046110 ms/op avg.
Find from the `package.json` directory  33.653173299971968 ms/op avg.

find-pkg + path.dirname():
Find from the current directory          7.597467000037431 ms/op avg.
Find from the deep directory           421.827792199980479 ms/op avg.
Resolve symlinks                               N/A (operation failed)
Find from the `package.json` directory         N/A (operation failed)

find-root:
Find from the current directory          8.991230100020767 ms/op avg.
Find from the deep directory           479.851285400055360 ms/op avg.
Resolve symlinks                               N/A (operation failed)
Find from the `package.json` directory         N/A (operation failed)

pkg-dir:
Find from the current directory          9.322520200069993 ms/op avg.
Find from the deep directory           505.923578500002634 ms/op avg.
Resolve symlinks                               N/A (operation failed)
Find from the `package.json` directory         N/A (operation failed)

License

ISC License © 2018 - 2019 Shinnosuke Watanabe

Dependents (4)

Package Sidebar

Install

npm i find-pkg-dir

Weekly Downloads

409

Version

2.0.0

License

ISC

Unpacked Size

5.7 kB

Total Files

4

Last publish

Collaborators

  • shinnn