Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timoxley/npm-run
Run locally-installed node module executables.
https://github.com/timoxley/npm-run
command-line javascript nodejs npm npm-scripts
Last synced: 4 days ago
JSON representation
Run locally-installed node module executables.
- Host: GitHub
- URL: https://github.com/timoxley/npm-run
- Owner: timoxley
- License: mit
- Created: 2014-04-21T03:06:45.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-11-14T15:00:58.000Z (about 6 years ago)
- Last Synced: 2024-12-25T08:23:41.153Z (7 days ago)
- Topics: command-line, javascript, nodejs, npm, npm-scripts
- Language: JavaScript
- Size: 50.8 KB
- Stars: 186
- Watchers: 3
- Forks: 20
- Open Issues: 7
-
Metadata Files:
- Readme: Readme.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
# npm-run
[![NPM](https://nodei.co/npm/npm-run.png?downloads=true&downloadRank=true)](https://nodei.co/npm-dl/npm-run/)
[![NPM](https://nodei.co/npm-dl/npm-run.png?months=3&height=3&chrome)](https://nodei.co/npm/npm-run/)[![Build Status](https://travis-ci.org/timoxley/npm-run.svg?branch=master)](https://travis-ci.org/timoxley/npm-run)
### Run executables in node_modules from the command-line
Use `npm-run` to ensure you're using the same version of a package on the command-line and in package.json scripts.
Any executable available to an npm lifecycle script is available to `npm-run`.
## Usage
```bash
> npm install mocha # mocha installed in ./node_modules
> npm-run mocha test/* # uses locally installed mocha executable
``````bash
> npm-run --help
Usage: npm-run command [...args]
Options:
--version Display version & exit.
--help Display this help & exit.Hint: to print augmented path use:
npm-run node -p process.env.PATH
```## Installation
```bash
> npm install -g npm-run
```## Programmatic API
The API of `npm-run` basically wraps core `child_process` methods (exec, spawn, etc) such that locally install package executables will be on the PATH when the command runs.
## npmRun(command[, options], callback)
Alias of npmRun.exec.
## npmRun.exec(command[, options], callback)
Takes same arguments as node's [exec](https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback).
```js
npmRun.exec('mocha --debug-brk --sort', {cwd: __dirname + '/tests'}, function (err, stdout, stderr) {
// err Error or null if there was no error
// stdout Buffer|String
// stderr Buffer|String
})
```## npmRun.sync(command[, options])
Alias of npmRun.execSync
## npmRun.execSync(command[, options])
Takes same arguments as node's [execSync](https://nodejs.org/api/child_process.html#child_process_child_process_execsync_command_options).
```js
var stdout = npmRun.execSync(
'mocha --debug-brk --sort',
{cwd: __dirname + '/tests'}
)
stdout // command output as Buffer|String
```## npmRun.spawnSync(command[, args][, options])
Takes same arguments as node's [spawnSync](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
```js
var child = npmRun.spawnSync(
'mocha',
'--debug-brk --sort'.split(' '),
{cwd: __dirname + '/tests'}
)
child.stdout // stdout Buffer|String
child.stderr // stderr Buffer|String
child.status // exit code
```## npmRun.spawn(command[, args][, options])
Takes same arguments as node's [spawn](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options).
```js
var child = npmRun.spawn(
'mocha',
'--debug-brk --sort'.split(' '),
{cwd: __dirname + '/tests'}
)
child.stdout // stdout Stream
child.stderr // stderr Stream
child.on('exit', function (code) {
code // exit code
})
```## Why
Due to npm's install algorithm `node_modules/.bin` is not guaranteed to contain your executable. `npm-run` uses the same mechanism npm uses to locate the correct executable.
### See Also
* [timoxley/npm-which](https://github.com/timoxley/npm-which)
* [timoxley/npm-path](https://github.com/timoxley/npm-path)
* [grncdr/npm-exec](https://github.com/grncdr/npm-exec)## License
MIT