Skip to main content

Awesome npm scripts

Everything awesome for using npm as a build tool.

You might also like awesome-npm.

Notice: I'm currently too busy to actively expand this list; therefore, I've decided to make this an OPEN Open Source Project. Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit.




Task Runners

Tools for running multiple commands or npm scripts in parallel or sequentially.

  • script-runner - Simple task runner with a terse syntax.
  • npm-run-all - Fully featured task runner.
  • redrun - Expand scripts from package.json to improve execution speed.

File Watchers

Tools to watch your source files and run a build command whenever any of the files change.

Dev Servers

  • http-server - Simple zero-configuration command-line http server.
  • live-server - Simple development http server with live reload capability.

Cross-platform Utilities

Utilities to perform common command-line tasks without worrying about cross-platform compatibility.

  • rimraf - Delete files or directories; like rm -rf.
  • del-cli - Safer file and folder deletion.
  • mkdirp - Create a directory, creating parent directories if needed; like mkdir -p.
  • cpr - cp -r for Node.js.
  • cpy-cli - File/directory copying/renaming.
  • copyfiles - Copy a list of files into a directory.
  • sync-files - rsync-like directory syncing with watch mode.
  • echo-cli - Cross-platform echo with JS escape sequence support.
  • clear-cli - Clear the terminal.
  • cross-env - Set environment variables for scripts, unix-style.
  • cross-os - Run platform-specific npm scripts.
  • ntee - Utility that reads from standard input and writes to standard output and files; like Unix tee.
  • catw - Print a file to stdout, with optional watch mode; sorta like Unix cat.

Utility Packs

  • shx - Collection of common Unix utilities implemented in Node.js; example usage: shx rm somefile.

Other Utilities

  • hashmark - Take contents of a file and output as new file with a hash in the name.
  • gzip-size-cli - Get the gzipped size of a file or stdin.
  • opn-cli - Open websites, files, executables, etc. with the user's preferred application.
  • headr - Add header / banner info to a file.
  • Bower files CLI - Get main bower files on the command line.
  • cli-error-notifier - Send native desktop notifications when npm scripts fail.


  • screwy - The npm scripts GUI.
  • Forrest - npm scripts desktop client.
  • run-npm - Run locally-installed node module executables. Useful for debugging npm scripts.
  • npm-quick-run - Quickly run npm scripts by prefix without typing the full name.
  • edit-script - Edit npm scripts from the command line without worrying about JSON escaping.
  • ntl - Interactive cli menu to list and run npm scripts.

Cross-platform Shell Reference

A quick reference of the shell operators & commands that work the same on Unix and Windows.

  • Use && to run commands in sequence. If a command fails, the script exits.
  • Use | to pipe the stdout of one command into the stdin of the next. (do-something | something else)
  • Use > to write the stdout of a command to a file. (do-something > file)
  • Use < file)
  • Use cd to change the current working directory to . Note that cd alone prints the current working directory on windows, but changes the working directory to ~ on *nix.

npm run Reference

You can use npm run-script or npm run; they both do the same thing, but npm run is shorter.

  • Run just npm run to print a list of scripts.
  • Running npm run script (where script is the name of your script) will run prescript, script, and postscript; in that order.
    • You can't nest pre and post hooks (i.e. preprescript won't work).
  • You can pass arguments to your scripts by passing -- to npm run, followed by the arguments. Example: Given the script "mocha": "mocha", you can run npm run mocha -- --reporter xunit. This effectively runs mocha --reporter xunit.
  • Running npm test is the same as running npm run test. The same applies to npm start and npm stop.
  • You can run npm run -s to silence the default npm output (useful for calling a script within another script).




Contribute to this list: