Node.js Command-Line Utilities are libraries that provide tools for interacting with the command line, managing environment variables, and handling executable files. These utilities help developers create scripts and applications that can perform tasks in the terminal, such as checking for the existence of commands, setting environment variables across platforms, and resolving the paths of executable files. They are essential for building CLI (Command-Line Interface) tools, automating tasks, and ensuring cross-platform compatibility in Node.js applications.
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.
const which = require('which')
// async usage
// rejects if not found
const resolved = await which('node')
// if nothrow option is used, returns null if not found
const resolvedOrNull = await which('node', { nothrow: true })
// sync usage
// throws if not found
const resolved = which.sync('node')
// if nothrow option is used, returns null if not found
const resolvedOrNull = which.sync('node', { nothrow: true })
// Pass options to override the PATH and PATHEXT environment vars.
await which('node', { path: someOtherPath, pathExt: somePathExt })
Just like the BSD which(1)
binary but using node-which
.
usage: node-which [-as] program ...
You can learn more about why the binary is node-which
and not which
here
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.