Courses & TutorialsProgramming

Awesome JavaScript Npm Script – Massive Collection of Resources

Everything awesome for using npm as a build tool.

Contents

Articles

Videos/Talks

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.

  • onchangeonchange <glob> -- <command>.
  • watchwatch <command> <directory>.

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.
  • cprcp -r for Node.js.
  • cpy-cli – File/directory copying/renaming.
  • copyfiles – Copy a list of files into a directory.
  • sync-filesrsync-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.

Miscellaneous

  • 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 < to send the contents of a file to a command’s stdin. (command < file)
  • Use cd <dir> to change the current working directory to <dir>. 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 <script> -s to silence the default npm output (useful for calling a script within another script).

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button