52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # which
 | ||
|  | 
 | ||
|  | Like the unix `which` utility. | ||
|  | 
 | ||
|  | Finds the first instance of a specified executable in the PATH | ||
|  | environment variable.  Does not cache the results, so `hash -r` is not | ||
|  | needed when the PATH changes. | ||
|  | 
 | ||
|  | ## USAGE
 | ||
|  | 
 | ||
|  | ```javascript | ||
|  | var which = require('which') | ||
|  | 
 | ||
|  | // async usage | ||
|  | which('node', function (er, resolvedPath) { | ||
|  |   // er is returned if no "node" is found on the PATH | ||
|  |   // if it is found, then the absolute path to the exec is returned | ||
|  | }) | ||
|  | 
 | ||
|  | // sync usage | ||
|  | // throws if not found | ||
|  | var resolved = which.sync('node') | ||
|  | 
 | ||
|  | // if nothrow option is used, returns null if not found | ||
|  | resolved = which.sync('node', {nothrow: true}) | ||
|  | 
 | ||
|  | // Pass options to override the PATH and PATHEXT environment vars. | ||
|  | which('node', { path: someOtherPath }, function (er, resolved) { | ||
|  |   if (er) | ||
|  |     throw er | ||
|  |   console.log('found at %j', resolved) | ||
|  | }) | ||
|  | ``` | ||
|  | 
 | ||
|  | ## CLI USAGE
 | ||
|  | 
 | ||
|  | Same as the BSD `which(1)` binary. | ||
|  | 
 | ||
|  | ``` | ||
|  | usage: which [-as] program ... | ||
|  | ``` | ||
|  | 
 | ||
|  | ## OPTIONS
 | ||
|  | 
 | ||
|  | You may pass an options object as the second argument. | ||
|  | 
 | ||
|  | - `path`: Use instead of the `PATH` environment variable. | ||
|  | - `pathExt`: Use instead of the `PATHEXT` environment variable. | ||
|  | - `all`: Return all matches, instead of just the first one.  Note that | ||
|  |   this means the function returns an array of strings instead of a | ||
|  |   single string. |