Giter VIP home page Giter VIP logo

awesome-npm's Introduction

awesome npm Awesome npm

Awesome npm resources and tips

You might also like awesome-nodejs.

Please read the contribution guidelines before contributing.

Contents

Articles

Tools

Web

  • npms - Superb package search with deep analysis of package quality using a myriad of metrics.
    • npm-introspect - A npms-based utility for visually exploring the quality of package dependencies.
  • 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.
  • npm-stats - Displays metrics about packages.
  • greenkeeper.io - Automates dependency updates through pull requests.
  • ghub.io - Redirects to the GitHub repo of an npm package.
  • npm addict - Your daily injection of npm packages.
  • npm discover - Discover what packages are commonly used together.
  • snyk - Find, fix and monitor for known vulnerabilities in npm dependencies.

Browser extensions

  • Octo-Linker - Chrome extension to navigate across npm packages on GitHub with ease.
  • npm-hub - Chrome extension to explore npm dependencies on GitHub repos.
  • github-npm-stats - View npm download stats on GitHub.

CLI

Packages

Publishing

  • 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.
  • semantic-release - Fully automated package publishing.

Registry

  • 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 an npm package.
  • npm-keyword - Get a list of npm packages with a certain keyword.
  • npm-user - Get user info of an npm user.
  • npm-email - Get the email of an npm user.
  • npm-user-packages - Get packages by an npm user.
  • dpn - Get the dependents of a user's npm packages.
  • npm-stats - Get data from an npm registry.
  • npm-cli-login - Log in to npm.
  • nrm - Registry manager.
  • npm-register - Easy to set up and maintain npm registry and proxy.
  • verdaccio - Lightweight private npm proxy registry.

Other

  • 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-check - Check for outdated, incorrect, and unused dependencies, as well as interactive update.
  • npm-upgrade - Update outdated npm dependencies interactively.
  • npm-shrinkwrap - A consistent shrinkwrap tool.
  • npm-windows-upgrade - Upgrade npm on Windows.
  • generator-nm - Scaffold out an 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.
  • local-npm - Use npm offline.
  • npe - CLI for inspecting and editing properties in package.json.
  • engine-deps - Manage Node.js version specific dependencies with ease.
  • enpeem-search - Search packages by scraping the npm web search.
  • npm-issues - Search known issues of all your packages at once.
  • john - Make npm3's flat dependencies easier to find and sort.
  • ntl - Interactive CLI menu to list & run npm tasks.
  • decheck - Explore dependencies of npm packages in the command-line.
  • shrinkpack - Lock down your dependencies and install offline.
  • redrun - Expand scripts from package.json to improve execution speed.
  • package-size - Get the bundle size of an npm package.
  • synp - Convert yarn.lock to package-lock.json and vice versa.

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 -Dnpm install --save-dev
  • npm tnpm test
  • npm itnpm install && npm test
  • npm rnpm uninstall

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. 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

All package.json properties are exposed as environment variables:

{
	"name": "awesome-package",
	"scripts": {
		"name": "echo $npm_package_name"
	}
}
$ npm run name
awesome-package

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.

{
	"name": "awesome-package",
	"dependencies": {
		"cat-names": "^1.0.0"
	}
}

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.

$ npx [email protected] -- node --version
v6.11.0

Link local packages

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 master 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)

$ npm install 'sindresorhus/chalk#semver:^2.0.0'

Install a specific version of a package

$ npm install [email protected]

List top-level installed packages and their version

$ npm ls --depth=0

Command help

Get help docs for a command:

$ npm help <command>

Example:

$ npm help install

Standalone version of a package

Quickly get a standalone version of a package that is browserified and usable in the browser.

https://wzrd.in/standalone/<package-name>[@<version>]

Examples:

Great for prototyping, but download the file or use Browserify yourself for production.

FAQ

Community

Documentation

Support

License

CC0

To the extent possible under law, Sindre Sorhus has waived all copyright and related or neighboring rights to this work.

awesome-npm's People

Contributors

amovah avatar coderaiser avatar coreybutler avatar dada1134 avatar davej avatar deadcoder0904 avatar dylang avatar egoist avatar elssar avatar guypod avatar imsnif avatar inikulin avatar jamiemason avatar juanpicado avatar katranci avatar kevgathuku avatar lewiscowper avatar lukechilds avatar mvila avatar niksy avatar ruyadorno avatar samccone avatar scurker avatar seanzarrin avatar sindresorhus avatar sobolevn avatar th0r avatar welksonramos avatar zeke avatar zkochan avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.