105 lines
4.0 KiB
Groff
105 lines
4.0 KiB
Groff
.TH "REGISTRY" "7" "November 2019" "" ""
|
||
.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
|