You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							94 lines
						
					
					
						
							7.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							94 lines
						
					
					
						
							7.3 KiB
						
					
					
				| <!doctype html> | |
| <html> | |
|   <title>npm-registry</title> | |
|   <meta charset="utf-8"> | |
|   <link rel="stylesheet" type="text/css" href="../../static/style.css"> | |
|   <link rel="canonical" href="https://www.npmjs.org/doc/misc/npm-registry.html"> | |
|   <script async=true src="../../static/toc.js"></script> | |
| 
 | |
|   <body> | |
|     <div id="wrapper"> | |
| 
 | |
| <h1><a href="../misc/npm-registry.html">npm-registry</a></h1> <p>The JavaScript Package Registry</p> | |
| <h2 id="description">DESCRIPTION</h2> | |
| <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> | |
| <p>Additionally, npm's package registry implementation supports several | |
| write APIs as well, to allow for publishing packages and managing user | |
| account information.</p> | |
| <p>The official public npm registry is at <a href="https://registry.npmjs.org/">https://registry.npmjs.org/</a>.  It | |
| is powered by a CouchDB database, of which there is a public mirror at | |
| <a href="https://skimdb.npmjs.com/registry">https://skimdb.npmjs.com/registry</a>.  The code for the couchapp is | |
| available at <a href="https://github.com/npm/npm-registry-couchapp">https://github.com/npm/npm-registry-couchapp</a>.</p> | |
| <p>The registry URL used is determined by the scope of the package (see | |
| <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>). If no scope is specified, the default registry is used, which is | |
| supplied by the <code>registry</code> config parameter.  See <code><a href="../cli/npm-config.html">npm-config(1)</a></code>, | |
| <code><a href="../files/npmrc.html">npmrc(5)</a></code>, and <code><a href="../misc/npm-config.html">npm-config(7)</a></code> for more on managing npm's configuration.</p> | |
| <h2 id="does-npm-send-any-information-about-me-back-to-the-registry-">Does npm send any information about me back to the registry?</h2> | |
| <p>Yes.</p> | |
| <p>When making requests of the registry npm adds two headers with information | |
| about your environment:</p> | |
| <ul> | |
| <li><code>Npm-Scope</code> – 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.</li> | |
| <li><code>Npm-In-CI</code> – Set to "true" if npm believes this install is running in a | |
| continous integration environment, "false" otherwise. This is detected by | |
| looking for the following environment variables: <code>CI</code>, <code>TDDIUM</code>, | |
| <code>JENKINS_URL</code>, <code>bamboo.buildKey</code>. If you'd like to learn more you may find | |
| the <a href="https://github.com/npm/npm-registry-client/pull/129">original PR</a> | |
| interesting. | |
| This is used to gather better metrics on how npm is used by humans, versus | |
| build farms.</li> | |
| </ul> | |
| <p>The npm registry does not to correlate the information in these headers with | |
| any authenticated accounts that may be used in the same requests.</p> | |
| <h2 id="can-i-run-my-own-private-registry-">Can I run my own private registry?</h2> | |
| <p>Yes!</p> | |
| <p>The easiest way is to replicate the couch database, and use the same (or | |
| similar) design doc to implement the APIs.</p> | |
| <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> | |
| <p>If you then want to publish a package for the whole world to see, you can | |
| simply override the <code>--registry</code> option for that <code>publish</code> command.</p> | |
| <h2 id="i-don-t-want-my-package-published-in-the-official-registry-it-s-private-">I don't want my package published in the official registry. It's private.</h2> | |
| <p>Set <code>"private": true</code> in your package.json to prevent it from being | |
| published at all, or | |
| <code>"publishConfig":{"registry":"http://my-internal-registry.local"}</code> | |
| to force it to be published only to your internal registry.</p> | |
| <p>See <code><a href="../files/package.json.html">package.json(5)</a></code> for more info on what goes in the package.json file.</p> | |
| <h2 id="will-you-replicate-from-my-registry-into-the-public-one-">Will you replicate from my registry into the public one?</h2> | |
| <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.</p> | |
| <h2 id="do-i-have-to-use-couchdb-to-build-a-registry-that-npm-can-talk-to-">Do I have to use couchdb to build a registry that npm can talk to?</h2> | |
| <p>No, but it's way easier.  Basically, yes, you do, or you have to | |
| effectively implement the entire CouchDB API anyway.</p> | |
| <h2 id="is-there-a-website-or-something-to-see-package-docs-and-such-">Is there a website or something to see package docs and such?</h2> | |
| <p>Yes, head over to <a href="https://npmjs.com/">https://npmjs.com/</a></p> | |
| <h2 id="see-also">SEE ALSO</h2> | |
| <ul> | |
| <li><a href="../cli/npm-config.html">npm-config(1)</a></li> | |
| <li><a href="../misc/npm-config.html">npm-config(7)</a></li> | |
| <li><a href="../files/npmrc.html">npmrc(5)</a></li> | |
| <li><a href="../misc/npm-developers.html">npm-developers(7)</a></li> | |
| <li><a href="../misc/npm-disputes.html">npm-disputes(7)</a></li> | |
| </ul> | |
| 
 | |
| </div> | |
| 
 | |
| <table border=0 cellspacing=0 cellpadding=0 id=npmlogo> | |
| <tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18> </td></tr> | |
| <tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)"> </td><td style="width:40px;height:10px;background:#fff" colspan=4> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4> </td><td style="width:40px;height:10px;background:#fff" colspan=4> </td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)"> </td><td colspan=6 style="width:60px;height:10px;background:#fff"> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4> </td></tr> | |
| <tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3> </td><td style="width:10px;height:10px;background:#fff" rowspan=3> </td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2> </td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2> </td><td style="width:10px;height:10px;background:#fff" rowspan=3> </td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3> </td><td style="width:10px;height:10px;background:#fff" rowspan=3> </td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3> </td></tr> | |
| <tr><td style="width:10px;height:10px;background:#fff" rowspan=2> </td></tr> | |
| <tr><td style="width:10px;height:10px;background:#fff"> </td></tr> | |
| <tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr> | |
| <tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr> | |
| </table> | |
| <p id="footer">npm-registry — npm@4.4.1</p> | |
| 
 |