What is npm-run-all?
The npm-run-all package is a CLI tool to run multiple npm-scripts in parallel or sequential order. It is useful for orchestrating complex build processes and can be used to simplify scripts in the 'package.json' file of a Node.js project.
What are npm-run-all's main functionalities?
Run tasks sequentially
This command will run the 'clean' task first, then 'build:css', and finally 'build:js' in sequential order.
npm-run-all clean build:css build:js
Run tasks in parallel
This command will run all tasks that match the pattern 'watch:*' simultaneously.
npm-run-all --parallel watch:*
Run a mix of sequential and parallel tasks
This command will run the 'clean' task first, then all 'build:*' tasks in parallel, and finally all 'test:*' tasks in sequential order.
npm-run-all clean --parallel build:* --sequential test:*
Use with npm lifecycle events
This example shows how to use npm-run-all within the 'scripts' section of 'package.json' to run the 'serve' and 'watch' tasks in parallel when the 'start' script is invoked.
"scripts": { "start": "npm-run-all --parallel serve watch" }
Other packages similar to npm-run-all
concurrently
Concurrently is similar to npm-run-all in that it can run multiple commands concurrently. It's a more general-purpose tool that can run arbitrary commands, not just npm scripts, and provides more options for output formatting.
parallelshell
Parallelshell is another alternative that can run multiple npm scripts in parallel. It is less feature-rich compared to npm-run-all and has been deprecated in favor of npm-run-all due to various issues.
run-p
run-p is a part of the npm-run-all package and can be used independently. It specifically focuses on running multiple npm scripts in parallel, similar to the '--parallel' option in npm-run-all.
run-s
run-s is also a part of the npm-run-all package and can be used on its own. It is designed to run multiple npm scripts sequentially, similar to the default behavior of npm-run-all without the '--parallel' flag.
npm-run-all
A CLI tool to run multiple npm-scripts in parallel or sequential.
⤴️ Motivation
- Simplify. The official
npm run-script
command cannot run multiple scripts, so if we want to run multiple scripts, it's redundant a bit. Let's shorten it by glob-like patterns.
Before: npm run clean && npm run build:css && npm run build:js && npm run build:html
After: npm-run-all clean build:*
- Cross platform. We sometimes use
&
to run multiple command in parallel, but cmd.exe
(npm run-script
uses it by default) does not support the &
. Half of Node.js users are using it on Windows, so the use of &
might block contributions. npm-run-all --parallel
works well on Windows as well.
💿 Installation
$ npm install npm-run-all --save-dev
$ yarn add npm-run-all --dev
📖 Usage
CLI Commands
This npm-run-all
package provides 3 CLI commands.
The main command is npm-run-all.
We can make complex plans with npm-run-all command.
Both run-s and run-p are shorthand commands.
run-s is for sequential, run-p is for parallel.
We can make simple plans with those commands.
Yarn Compatibility
If a script is invoked with Yarn, npm-run-all
will correctly use Yarn to execute the plan's child scripts.
Node API
This npm-run-all
package provides Node API.
📰 Changelog
🍻 Contributing
Welcome♡
Bug Reports or Feature Requests
Please use GitHub Issues.
Correct Documents
Please use GitHub Pull Requests.
I'm not familiar with English, so I especially thank you for documents' corrections.
Implementing
Please use GitHub Pull Requests.
There are some npm-scripts to help developments.
- npm test - Run tests and collect coverage.
- npm run clean - Delete temporary files.
- npm run lint - Run ESLint.
- npm run watch - Run tests (not collect coverage) on every file change.