{"id":65,"url":"https://github.com/RyanZim/awesome-npm-scripts","last_synced_at":"2025-08-13T19:32:24.686Z","repository":{"id":38206604,"uuid":"67639215","full_name":"RyanZim/awesome-npm-scripts","owner":"RyanZim","description":"Everything awesome related to npm scripts and using npm as a build tool.","archived":false,"fork":false,"pushed_at":"2022-10-08T22:31:37.000Z","size":148,"stargazers_count":721,"open_issues_count":0,"forks_count":43,"subscribers_count":31,"default_branch":"master","last_synced_at":"2024-05-20T03:45:52.975Z","etag":null,"topics":["awesome","awesome-list","list","npm","task-runner"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RyanZim.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-07T20:01:12.000Z","updated_at":"2024-05-19T12:20:08.000Z","dependencies_parsed_at":"2023-01-19T15:16:42.982Z","dependency_job_id":null,"html_url":"https://github.com/RyanZim/awesome-npm-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanZim%2Fawesome-npm-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanZim%2Fawesome-npm-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanZim%2Fawesome-npm-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanZim%2Fawesome-npm-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RyanZim","download_url":"https://codeload.github.com/RyanZim/awesome-npm-scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229780026,"owners_count":18122914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","list","npm","task-runner"],"created_at":"2024-01-05T20:12:45.360Z","updated_at":"2024-12-15T03:30:22.870Z","avatar_url":"https://github.com/RyanZim.png","language":null,"funding_links":[],"categories":["Programming Languages","Technical","Uncategorized","Node","miscellaneous","NodeJS \u0026 NPM","Others","Live Site:   [searchAwesome](https://search-awesome.vercel.app/)","Npm","Other Lists","编程语言","awesome-list","Themed Directories"],"sub_categories":["awesome-*","Uncategorized","TeX Lists","Updated more than a year ago"],"readme":"\u003c!--lint ignore awesome-heading--\u003e\n# Awesome npm Scripts [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\n[\u003cimg src=\"npm-logo.png\" align=\"right\" width=\"150\"\u003e](https://www.npmjs.com)\n\n\u003e Everything awesome for using npm as a build tool.\n\nYou might also like [awesome-npm](https://github.com/sindresorhus/awesome-npm).\n\n**Notice: I'm currently too busy to actively expand this list; therefore, I've decided to make this an [OPEN Open Source Project](http://openopensource.github.io/). Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit.**\n\n## Contents\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n- [Articles](#articles)\n- [Videos/Talks](#videostalks)\n- [Task Runners](#task-runners)\n- [File Watchers](#file-watchers)\n- [Dev Servers](#dev-servers)\n- [Cross-platform Utilities](#cross-platform-utilities)\n  - [Utility Packs](#utility-packs)\n- [Other Utilities](#other-utilities)\n- [Miscellaneous](#miscellaneous)\n- [Cross-platform Shell Reference](#cross-platform-shell-reference)\n- [`npm run` Reference](#npm-run-reference)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Articles\n\n- [Why we should stop using Grunt \u0026 Gulp](https://www.keithcirkel.co.uk/why-we-should-stop-using-grunt/) - Blog post by Keith Cirkel.\n- [How to Use npm as a Build Tool](https://www.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/) - Sequel to »Why we should stop using Grunt \u0026 Gulp«.\n- [Why I Left Gulp and Grunt for npm Scripts](https://medium.freecodecamp.com/why-i-left-gulp-and-grunt-for-npm-scripts-3d6853dd22b8) -  Article by Cory House.\n- [Helpers and tips for npm run scripts](http://michael-kuehnel.de/tooling/2018/03/22/helpers-and-tips-for-npm-run-scripts.html) - Blog post by Michael Kühnel covering advanced topics.\n- [Running cross-platform tasks via npm package scripts](https://exploringjs.com/nodejs-shell-scripting/ch_package-scripts.html) - The most comprehensive guide to using npm Scripts by Dr. Axel Rauschmayer.\n\n## Videos/Talks\n\n- [Advanced front-end automation with npm scripts](https://www.youtube.com/watch?v=0RYETb9YVrk) - Talk at Nordic.js 2015 by Kate Hudson.\n- [How to create a build system with npm scripts](http://www.penta-code.com/how-to-create-a-build-system-with-npm-scripts/) - Video tutorial series on setting up a front-end build system.\n\n## Task Runners\n\nTools for running multiple commands or npm scripts in parallel or sequentially.\n\n- [script-runner](https://github.com/paulpflug/script-runner) - Simple task runner with a terse syntax.\n- [npm-run-all](https://github.com/mysticatea/npm-run-all) - Fully featured task runner.\n- [redrun](https://github.com/coderaiser/redrun) - Expand scripts from package.json to improve execution speed.\n\n## File Watchers\n\nTools to watch your source files and run a build command whenever any of the files change.\n\n- [onchange](https://github.com/Qard/onchange) - `onchange \u003cglob\u003e -- \u003ccommand\u003e`.\n- [watch](https://github.com/mikeal/watch) - `watch \u003ccommand\u003e \u003cdirectory\u003e`.\n\n## Dev Servers\n\n- [http-server](https://github.com/indexzero/http-server) - Simple zero-configuration command-line http server.\n- [live-server](https://github.com/tapio/live-server) - Simple development http server with live reload capability.\n\n## Cross-platform Utilities\n\nUtilities to perform common command-line tasks without worrying about cross-platform compatibility.\n\n- [rimraf](https://github.com/isaacs/rimraf) - Delete files or directories; like `rm -rf`.\n- [del-cli](https://github.com/sindresorhus/del-cli) - Safer file and folder deletion.\n- [mkdirp](https://github.com/substack/node-mkdirp) - Create a directory, creating parent directories if needed; like `mkdir -p`.\n- [cpr](https://github.com/davglass/cpr) - `cp -r` for Node.js.\n- [cpy-cli](https://github.com/sindresorhus/cpy-cli) - File/directory copying/renaming.\n- [copyfiles](https://github.com/calvinmetcalf/copyfiles) - Copy a list of files into a directory.\n- [sync-files](https://github.com/byteclubfr/node-sync-files) - `rsync`-like directory syncing with watch mode.\n- [echo-cli](https://github.com/iamakulov/echo-cli) - Cross-platform `echo` with JS escape sequence support.\n- [clear-cli](https://github.com/sindresorhus/clear-cli) - Clear the terminal.\n- [cross-env](https://github.com/kentcdodds/cross-env) - Set environment variables for scripts, unix-style.\n- [cross-os](https://github.com/milewski/cross-os) - Run platform-specific npm scripts.\n- [ntee](https://github.com/stefanmaric/ntee) - Utility that reads from standard input and writes to standard output and files; like Unix `tee`.\n- [catw](https://github.com/substack/catw) - Print a file to stdout, with optional watch mode; sorta like Unix `cat`.\n\n### Utility Packs\n\n- [shx](https://github.com/shelljs/shx) - Collection of common Unix utilities implemented in Node.js; example usage: `shx rm somefile`.\n\n## Other Utilities\n\n- [hashmark](https://github.com/keithamus/hashmark) -  Take contents of a file and output as new file with a hash in the name.\n- [gzip-size-cli](https://github.com/sindresorhus/gzip-size-cli) - Get the gzipped size of a file or stdin.\n- [opn-cli](https://github.com/sindresorhus/opn-cli) - Open websites, files, executables, etc. with the user's preferred application.\n- [headr](https://github.com/heldr/headr) - Add header / banner info to a file.\n- [Bower files CLI](https://github.com/thompsonemerson/bower-files-cli) - Get main bower files on the command line.\n- [cli-error-notifier](https://github.com/micromata/cli-error-notifier) - Send native desktop notifications when npm scripts fail.\n\n## Miscellaneous\n\n- [screwy](https://github.com/samueleaton/screwy) - The npm scripts GUI.\n- [Forrest](https://github.com/stefanjudis/forrest) - npm scripts desktop client.\n- [run-npm](https://github.com/timoxley/npm-run) - Run locally-installed node module executables. Useful for debugging npm scripts.\n- [npm-quick-run](https://github.com/bahmutov/npm-quick-run) - Quickly run npm scripts by prefix without typing the full name.\n- [edit-script](https://github.com/RyanZim/edit-script) - Edit npm scripts from the command line without worrying about JSON escaping.\n- [ntl](https://github.com/ruyadorno/ntl) - Interactive cli menu to list and run npm scripts.\n\n## Cross-platform Shell Reference\n\nA quick reference of the shell operators \u0026 commands that work the same on Unix and Windows.\n\n- Use `\u0026\u0026` to run commands in sequence. If a command fails, the script exits.\n- Use `|` to pipe the stdout of one command into the stdin of the next. (`do-something | something else`)\n- Use `\u003e` to write the stdout of a command to a file. (`do-something \u003e file`)\n- Use `\u003c` to send the contents of a file to a command's stdin. (`command \u003c file`)\n- Use `cd \u003cdir\u003e` to change the current working directory to `\u003cdir\u003e`. Note that `cd` alone prints the current working directory on windows, but changes the working directory to `~` on \\*nix.\n\n## `npm run` Reference\n\nYou can use `npm run-script` or `npm run`; they both do the same thing, but `npm run` is shorter.\n\n- Run just `npm run` to print a list of scripts.\n- Running `npm run script` (where `script` is the name of your script) will run `prescript`, `script`, and `postscript`; in that order.\n  - You can't nest `pre` and `post` hooks (i.e. `preprescript` won't work).\n- 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`.\n- Running `npm test` is the same as running `npm run test`. The same applies to `npm start` and `npm stop`.\n- You can run `npm run \u003cscript\u003e -s` to silence the default npm output (useful for calling a script within another script).\n\n## Contributing\n\nSee [CONTRIBUTING.md](https://github.com/RyanZim/awesome-npm-scripts/blob/master/CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRyanZim%2Fawesome-npm-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRyanZim%2Fawesome-npm-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRyanZim%2Fawesome-npm-scripts/lists"}