Skip to content

ianmcnally/npm-run-parallel

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Run npm tasks in parallel and exit when they are all done.

Build Status

Installation

Locally (recommended, especially with npm scripts):

npm install npm-run-parallel

Globally, as a CLI:

npm install -g npm-run-parallel

Usage

From the command line, or an npm script:

npm-run-parallel <npm scripts>

So, if I want to run npm install and npm test in parallel (a contrived example, I know!):

npm-run-parallel install test

The process will complete when both npm install and npm test finish.

Note: you can run custom npm scripts, too. Just like you would install or test above.

Why?

On a given project, there are likely some long or expensive npm scripts, like asset compilation or multi-directory dependency installs. It's faster to do these in parallel.

A common way to run any shell command (which an npm script is) is the & operator, which creates a subprocess. This subprocess runs separately, so the original process can never tell how or when the subprocess ended. In a similar vein, the | operator can pipe the output of one command to another. This can feel like streaming, but passing the output of one npm script to another is both a hack and prone to erroring out.

Some build tools, like gulp, accomplish parallel commands (a.k.a. tasks) with streaming libraries. The recent trend towards npm scripts from these walled-garden tools necessitated emulating that functionality. So npm-run-parallel all the tasks!

Do I get colored terminal output from my tasks?

Yes! It's awesome. I learned a lot about streams and stdout in the process of making this.

Contributing

See CONTRIBUTING.md for the code of conduct.

Local development

  • npm run watch - Compile source code, and watch for changes

  • npm run lint - Lints source code (eslint)

  • npm run test:watch - Run tests and watch for file changes

Other commands

  • npm run build - Compiles source code (also used in prepublish)

  • npm run test - Run unit tests once

  • npm run start -- - Emulates the cli interface (note: pass it task arguments. Useful for manual testing.)

About

Run npm tasks in parallel and exit when they are all done

Resources

Stars

Watchers

Forks

Packages

No packages published