npm software and services lie at the heart of a thriving development ecosystem, but terms like “package manager” and “software registry” may leave you with some questions.
You’ll run the npm client software to access one or more remote (network-based) repositories of software packages. You can view, retrieve and install packages shared by others in your organization or anywhere in the world. The npm client also allows you to publish your own packages, and modify and manage those packages in a repository.
What repository? The npm Registry is a repository of open-source software packages hosted by npm for the Node.js developer community. Through the npm Registry, users can discover and download existing packages for use in their own projects. They also can submit and upload new or updated packages for download by others, including the ability to set permissions on the use of their software. In addition to transmitting hundreds of millions of software uploads and downloads per day, the npm Registry functions as a communication network for the community for analytics on the use of packages.
These features and functions of the npm client software are made possible by server-based software interfacing with a repository. The remote software provides the APIs for viewing, retrieving, publishing, and managing software packages in a repository. Access to the npm Registry uses software on servers hosted by npm. Using npm's hosted service is free for open source software, and private package hosting is available for teams and individual developers. Enterprise customers may choose to host the software themselves as a private registry.
When you’re ready to dig into the details, npm provides extensive online instructional materials. If you run into trouble or can’t find an answer, npm provides technical support on the npm client software and npm Registry by email, on Github, and on Twitter.
Got more questions? Feel free to contact us.