Awesome npm resources and tips
Inspired by the awesome list thing. You might also like awesome-nodejs.
- Small focused modules
- Semver: A Primer (Must read!)
- Semver: Tilde and Caret
- Offline installation of npm packages
- Task automation with npm run
- How to use npm as a build tool
- Install npm packages globally without sudo on OS X and Linux
- how-to-npm - Interactive CLI introduction to npm.
- npmsearch - Fast package search with ranking based on metrics like stars, dependents, release frequency, etc.
- node-modules - Personalized package search based on your GitHub social graph.
- NodeICO - Package badges.
- Libraries.io - Package discovery.
- npm-stat - Statistics charts for packages.
- npmgraph - Visualization of dependencies.
- npm trends - Compare package download counts over time.
- npm-compare - Easily search and compare packages.
- npm-top - npm users by downloads.
- npm semver calculator - Visually explore what versions of a package a semver range matches.
- Octo-Linker - Chrome extension to navigate across npm packages on GitHub with ease.
- npm-hub - Chrome extension to explore npm dependencies on GitHub repos.
- np - A better
npm publish
. - publish-please - Publish packages safely and gracefully.
- npm-release - Making releasing to npm so easy a kitten could probably do it™.
- pkgfiles - List all files which would be published in a package.
- npm-name - Check whether a package name is available on npm.
- package-json - Get the package.json of a package from the npm registry.
- latest-version - Get the latest version of a npm package.
- npm-keyword - Get a list of npm packages with a certain keyword.
- npm-user - Get user info of a npm user.
- npm-email - Get the email of a npm user.
- npm-user-packages - Get packages by a npm user.
- dpn - Get the dependents of a user's npm packages.
- npm-stats - Get data from a npm registry.
- npm-home - Open the npm page of a package.
- gh-home - Open the GitHub page of a package.
- david - Check if your package dependencies are out of date.
- npm-shrinkwrap - A consistent shrinkwrap tool.
- npm-windows-upgrade - Upgrade npm on Windows.
- generator-nm - Scaffold out a npm package.
- pkg-up - Find the closest package.json file.
- read-pkg-up - Read the closest package.json file.
- normalize-package-data - Normalize package metadata.
- pkg-conf - Get namespaced config from the closest package.json.
- npm-run-path - Run locally installed binaries in the terminal by name like with global ones.
$ npm install --global npm
npm i
→npm install
npm t
→npm test
npm it
→npm install && npm test
npm r
→npm uninstall
Speed up your common npm tasks.
In your .zshrc
/.bashrc
:
alias ni='npm install'
alias nis='npm install --save'
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 nf='npm cache clean && rm -rf node_modules && npm install'
You can have npm add packages to package.json when installing by specifying the --save
/-S
flag for dependencies
and --save-dev
/-D
for devDependencies
:
$ npm install --save chalk
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. npm run foo
will also run prefoo
and postfoo
if defined.
{
"name": "awesome-package",
"scripts": {
"cat": "cat-names"
},
"dependencies": {
"cat-names": "^1.0.0"
}
}
$ npm run cat
Max
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.
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 master is a moving target:
$ npm install 'sindresorhus/chalk#51b8f32'
Specify either a commit SHA, branch, tag, or nothing.
$ npm install chalk@1.0.0
$ npm ls --depth=0
Get help docs for a command:
$ npm help <command>
Example:
$ npm help install
- Check in node_modules vs. shrinkwrap
- What is the difference between Bower and npm?
- What does
^
mean in package.json versioning? - Find the version of an installed npm package
- What's the difference between dependencies, devDependencies, and peerDependencies in package.json?
- Official
- Troubleshooting
- Semantic versioning
- Fixing npm permissions
- package.json
- npm run script
- Stats API
To the extent possible under law, Sindre Sorhus has waived all copyright and related or neighboring rights to this work.