1. find-root
find the closest package.json
find-root
Package: find-root
Created by: js-n
Last modified: Sat, 04 Mar 2023 04:01:33 GMT
Version: 1.1.0
License: MIT
Downloads: 40,372,838
Repository: https://github.com/js-n/find-root

Install

npm install find-root
yarn add find-root

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

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code