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
						
					
					
				| # 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
 |