You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					70 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					70 lines
				
				1.6 KiB
			| 
											3 years ago
										 | # find-root
 | ||
|  | recursively find the closest package.json | ||
|  | 
 | ||
|  | [](https://travis-ci.org/js-n/find-root) | ||
|  | 
 | ||
|  | ## usage
 | ||
|  | Say you want to check if the directory name of a project matches its | ||
|  | module name in package.json: | ||
|  | 
 | ||
|  | ```js | ||
|  | 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: | ||
|  | ```js | ||
|  | 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
 | ||
|  | ```sh | ||
|  | > npm install find-root
 | ||
|  | ``` | ||
|  | 
 | ||
|  | ## running the tests
 | ||
|  | 
 | ||
|  | From package root: | ||
|  | ```sh | ||
|  | > npm install
 | ||
|  | > npm test
 | ||
|  | ``` | ||
|  | 
 | ||
|  | ## contributors
 | ||
|  | 
 | ||
|  | - jsdnxx | ||
|  | 
 | ||
|  | 
 | ||
|  | ## license
 | ||
|  | MIT. (c) 2017 jsdnxx |