What is npm?

npm opens up an entire world of JavaScript talent for you and your team. It's the world's largest software registry, with approximately 3 billion downloads per week. The registry contains over 600,000 packages (building blocks of code). Open-source developers from every continent use npm to share and borrow packages, and many organizations use npm to manage private development as well.

Here is a quick introduction to npm:

npm consists of three distinct components:

  • the website
  • the Command Line Interface (CLI)
  • the registry

Use the website to discover packages, set up profiles, and manage other aspects of your npm experience. For example, you can set up Orgs (organizations) to manage access to public or private packages.

The CLI runs from a terminal. This is how most developers interact with npm.

The registry is a large public database of JavaScript software and the meta-information surrounding it.

Use npm to . . .

  • Adapt packages of code to your apps, or incorporate packages as they are.
  • Download standalone tools you can use right away.
  • Run packages without downloading using npx.
  • Share code with any npm user, any where.
  • Restrict code to specific developers.
  • Form Orgs (organizations) to coordinate package maintenance, coding, and developers.
  • Form virtual teams by using Orgs.
  • Manage multiple versions of code and code dependencies.
  • Update applications easily when underlying code is updated.
  • Discover multiple ways to solve the same puzzle.
  • Find other developers who are working on similar problems and projects.

These are just a few examples of ways developers use npm. If you'd like to add a bullet point, comment here.

Where do I Start?

Now that you know what npm is, and a bit about how to use it, it's time to get started.

Your First Package Page

First, you create an npm account, which is explained in the next chapter. You will then have you own page on npmjs.com, which will be http://www.npmjs.com/~yourusername.

As you publish packages, they will appear on your page. You can add organizations to invite others to work with you.

After you set up an npm account, the next step is to use the commmand line interface (CLI) to install npm. We look forward to seeing what you create!

How do I share packages or collaborate with others?

If you choose to share your packages publicly, there is no cost. To use and share private packages, you need to upgrade your account. To share with others, create organizations, called npm Orgs, and invite others to work with you, privately (for a fee) or publicly (for free). Or you can sign up for a custom, private type of npm for your company, called npmE for npm Enterprise.

Learn more about npm Orgs and npmE

npm Orgs provide tools for managing both public and private packages. Granting permissions is easy, and configuration is simplified.

If you would prefer to have your own private registry, so that you can develop packages internally that are not shared publicly, consider npm Enterprise.

Learn More

To learn more about npm as a product, new features on the way, and interesting uses of npm, sign up for our newsletter at npm-weekly, and be sure to follow @npmjs on twitter.

To explore additional features and options, click here.

To learn about tools to manage multiple packages and collaborators, see npm Orgs.

To learn more about npm Enterprise, click here.

For mentoring, tutorials, and learning, vist node school. Consider attending or hosting a nodeschool event (usually free!) at a site near you, or use the self-help tools you can find on the site.

CLI Reference Doc / Online Help

While relevant CLI commands are covered throughout this user documentation, the CLI includes command line help, its own documentation section, and instant help (man pages). When you click a doc about any CLI command, a list of all CLI commands appears in the left-hand side bar. You can also access the list of CLI commands by scrolling to CLI Commands on the docs home page.

© npm, Inc. and Contributors
Licensed under the npm License.
npm is a trademark of npm, Inc.