sindresorhus/awesome-npm is a server-side project on GitHub with 4.7k stars. Awesome npm resources and tips
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
lockfile-lint - Lint lockfiles for improved security and trust policies to mitigate malicious package injection and insecure lockfile resources.
Clients
yarn - Fast, reliable, and secure dependency management.
npm - The official client.
pnpm - Fast, disk space efficient package manager.
Tips
Update to the latest npm version
$ npm install --global npm
Windows users, read more.
Command aliases
npm i → npm install
npm i -D → npm install --save-dev
npm t → npm test
npm it → npm install && npm test
npm r → npm uninstall
npm un → npm uninstall
npm up → npm update
Shell aliases
Speed up your common npm tasks.
In your .zshrc/.bashrc:
alias ni='npm install'
alias nid='npm install --save-dev'
alias nig='npm install --global'
alias nt='npm test'
alias nit='npm install && npm test'
alias nk='npm link'
alias nr='npm run'
alias ns='npm start'
alias nf='npm cache clean && rm -rf node_modules && npm install'
alias nlg='npm list --global --depth=0'
Don't add to package.json when installing
By default npm adds packages you install to the dependencies field in package.json (since v5). You can prevent this by specifying the --no-save flag. You can add a package to devDependencies with --save-dev/-D:
$ npm install --save-dev ava
Run scripts
You can easily run scripts using npm by adding them to the "scripts" field in package.json and run them with npm run <script-name>. Run npm run to see available scripts. Binaries of locally install packages are made available in the PATH, so you can run them by name.
You can pass options to the command you are using in your npm script by adding -- --flag like in the example below. The -- marks the end of options parsing, so npm run will just ignore it and pass it to the command.
{
"name": "awesome-package",
"scripts": {
"xo": "xo",
"xo:fix": "npm run xo -- --fix",
}
}
Adding the -- --fix option is like executing xo --fix.
Silent option
npm run has a --silent option which is especially useful when combining npm scripts.
Imagine you have a setup for linting your JavaScript files like the following:
{
"name": "awesome-package",
"scripts": {
"xo": "xo",
"xo:fix": "npm run xo --silent -- --fix",
}
}
Using the --silent option reduces the output in the terminal. See this comparison.
Lifecycle scripts
npm comes with predefined lifecyle scripts which are excuted under specific conditions if they are defined in your package.json.
This will be executed automatically before your npm package is published to the registry via npm publish to check for known vulnerabilties in your dependencies.
Note: prepublishOnly is available since npm v4.0.0. See npm docs.
npm start and npm test
npm start and npm test are also lifecycle scripts but are not executed automatically.
This will lint your files before running your tests. The tests will not run if linting fails. Or more generally spoken: the following script won’t be executed if one of the scripts running in sequence exits with an exit code other than 0.
Note: pre and post scripts can also be used for your custom npm scripts. So npm run foo will also run prefoo and postfoo if defined.
Run script with npx
npm comes bundled with npx (Since v5.2.0) — a tool to execute package binaries. Each command is executed either from the local node_modules/.bin directory, or from a central cache, installing any packages needed in order for <command> to run.
If the binary is already installed, it will be executed from node_modules/.bin.
$ npx cat-names
Max
But if the binary is missing, it will be installed first.
$ npx dog-names
npx: installed 46 in 3.136s
Bentley
Run commands with different Node.js versions
With npx (Comes bundled with npm v5.2.0 or newer) and the node-bin package, you can easily try out code in different Node.js versions without having to use a version manager like nvm, nave, or n.
Sometimes it can be useful to have a local version of a package as a dependency. You can use npm link to link one local package into another. Run npm link in the package you want to use. This creates a global reference. Then go into your original package and run npm link <package-name> to link in the other package.
$ cd rainbow
$ npm link
$ cd ../unicorn
$ npm link rainbow
You can now use rainbow as a dependency in the unicorn package.
Install a package from GitHub
npm supports using a shorthand for installing a package directly from a GitHub repo:
$ npm install sindresorhus/chalk
Let's target a specific commit as the main branch is a moving target:
$ npm install 'sindresorhus/chalk#51b8f32'
Specify either a commit SHA, branch, tag, or nothing.
You can also install Git dependencies with semver: (Requires npm v5 or newer)
How active is development on sindresorhus/awesome-npm?
The most recent commit recorded on sindresorhus/awesome-npm was 4 months ago, based on the GitHub push timestamp. The repository has 281 forks — one of the better signals of community interest.
How many stars does sindresorhus/awesome-npm have?
sindresorhus/awesome-npm has 4.7k GitHub stars — refresh the page for the live number, or check github.com/sindresorhus/awesome-npm. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What else is in the Backend space?
sindresorhus/awesome-npm is tracked by TopGit under the Backend category, alongside 8 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What language is sindresorhus/awesome-npm written in?
TopGit's last sync did not record a primary language for sindresorhus/awesome-npm. Open the repository on GitHub to see the full breakdown by file extension.
What topics is sindresorhus/awesome-npm associated with?
GitHub's repository topics for sindresorhus/awesome-npm: "awesome", "awesome-list", "list", "node", "nodejs", "npm", "package-manager", "yarn". TopGit's editorial category is Backend.
Where do I read more about sindresorhus/awesome-npm?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/sindresorhus/awesome-npm is the definitive source.
Why is sindresorhus/awesome-npm categorized under Backend?
TopGit places sindresorhus/awesome-npm in the Backend category based on its GitHub topics and description (tagged: "awesome", "awesome-list", "list"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Still deciding about awesome-npm?
One click hands the question to an AI along with this page — see what it says about awesome-npm.