123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- .TH "REGISTRY" "7" "August 2021" "" ""
- .SH "NAME"
- \fBregistry\fR \- The JavaScript Package Registry
- .SS Description
- .P
- To resolve packages by name and version, npm talks to a registry website
- that implements the CommonJS Package Registry specification for reading
- package info\.
- .P
- npm is configured to use npm, Inc\.'s public registry at
- https://registry\.npmjs\.org by default\. Use of the npm public registry is
- subject to terms of use available at https://www\.npmjs\.com/policies/terms\|\.
- .P
- You can configure npm to use any compatible registry you like, and even run
- your own registry\. Use of someone else's registry may be governed by their
- terms of use\.
- .P
- npm's package registry implementation supports several
- write APIs as well, to allow for publishing packages and managing user
- account information\.
- .P
- The npm public registry is powered by a CouchDB database,
- of which there is a public mirror at
- https://skimdb\.npmjs\.com/registry\|\. The code for the couchapp is
- available at https://github\.com/npm/npm\-registry\-couchapp\|\.
- .P
- The registry URL used is determined by the scope of the package (see
- npm help \fBscope\fP\|\. If no scope is specified, the default registry is used, which is
- supplied by the \fBregistry\fP config parameter\. See npm help \fBconfig\fP,
- npm help \fBnpmrc\fP, and npm help \fBconfig\fP for more on managing npm's configuration\.
- .SS Does npm send any information about me back to the registry?
- .P
- Yes\.
- .P
- When making requests of the registry npm adds two headers with information
- about your environment:
- .RS 0
- .IP \(bu 2
- \fBNpm\-Scope\fP – If your project is scoped, this header will contain its
- scope\. In the future npm hopes to build registry features that use this
- information to allow you to customize your experience for your
- organization\.
- .IP \(bu 2
- \fBNpm\-In\-CI\fP – Set to "true" if npm believes this install is running in a
- continuous integration environment, "false" otherwise\. This is detected by
- looking for the following environment variables: \fBCI\fP, \fBTDDIUM\fP,
- \fBJENKINS_URL\fP, \fBbamboo\.buildKey\fP\|\. If you'd like to learn more you may find
- the original PR \fIhttps://github\.com/npm/npm\-registry\-client/pull/129\fR
- interesting\.
- This is used to gather better metrics on how npm is used by humans, versus
- build farms\.
- .RE
- .P
- The npm registry does not try to correlate the information in these headers
- with any authenticated accounts that may be used in the same requests\.
- .SS Can I run my own private registry?
- .P
- Yes!
- .P
- The easiest way is to replicate the couch database, and use the same (or
- similar) design doc to implement the APIs\.
- .P
- If you set up continuous replication from the official CouchDB, and then
- set your internal CouchDB as the registry config, then you'll be able
- to read any published packages, in addition to your private ones, and by
- default will only publish internally\.
- .P
- If you then want to publish a package for the whole world to see, you can
- simply override the \fB\-\-registry\fP option for that \fBpublish\fP command\.
- .SS I don't want my package published in the official registry\. It's private\.
- .P
- Set \fB"private": true\fP in your package\.json to prevent it from being
- published at all, or
- \fB"publishConfig":{"registry":"http://my\-internal\-registry\.local"}\fP
- to force it to be published only to your internal registry\.
- .P
- See npm help \fBpackage\.json\fP for more info on what goes in the package\.json file\.
- .SS Will you replicate from my registry into the public one?
- .P
- No\. If you want things to be public, then publish them into the public
- registry using npm\. What little security there is would be for nought
- otherwise\.
- .SS Do I have to use couchdb to build a registry that npm can talk to?
- .P
- No, but it's way easier\. Basically, yes, you do, or you have to
- effectively implement the entire CouchDB API anyway\.
- .SS Is there a website or something to see package docs and such?
- .P
- Yes, head over to https://www\.npmjs\.com/
- .SS See also
- .RS 0
- .IP \(bu 2
- npm help config
- .IP \(bu 2
- npm help config
- .IP \(bu 2
- npm help npmrc
- .IP \(bu 2
- npm help developers
- .IP \(bu 2
- npm help disputes
- .RE
|