npm-registry The JavaScript Package Registry

Description

要按名称和版本解析软件包,npm会与一个注册网站进行对话,该网站实施CommonJS Package Registry规范以读取软件包信息.

默认情况下,npm配置为使用npm,Inc.的公共注册表https://registry.npmjs.org . 使用npm公共注册表必须遵守https://www.npmjs.com/policies/terms上的使用条款.

您可以将npm配置为使用任何您喜欢的兼容注册表,甚至运行您自己的注册表. 他人注册表的使用可能受其使用条款的约束.

npm的程序包注册表实现也支持多个写入API,以允许发布程序包和管理用户帐户信息.

npm公共注册表由CouchDB数据库提供动力,该数据库在https://skimdb.npmjs.com/registry上具有公共镜像. 该沙发应用程序的代码可在https://github.com/npm/npm-registry-couchapp中获得 .

使用的注册表URL由程序包的范围决定(请参阅scope .如果未指定范围,则使用默认注册表,由registry config参数提供.有关管理npm的更多信息,请参见npm confignpmrcconfig .组态.

Does npm send any information about me back to the registry?

Yes.

在发出注册表请求时,npm添加了两个标头,其中包含有关您的环境的信息:

npm注册表不会尝试将这些标头中的信息与同一请求中可能使用的任何经过身份验证的帐户相关联.

Can I run my own private registry?

Yes!

最简单的方法是复制Couch数据库,并使用相同(或相似)的设计文档来实现API.

如果您从官方CouchDB设置了连续复制,然后将内部CouchDB设置为注册表配置,则除了私有包之外,您还可以读取任何已发布的包,并且默认情况下仅在内部发布.

然后,如果要发布供全世界查看的软件包,则可以简单地为该publish命令覆盖--registry选项.

I don’t want my package published in the official registry. It’s private.

在package.json中设置"private": true以完全阻止发布,或在"publishConfig":{"registry":"http://my-internal-registry.local"}设置强制发布仅限于您的内部注册表.

有关package.json中内容的更多信息,请参见package.json .

Will you replicate from my registry into the public one?

否.如果您希望公开所有内容,请使用npm将其发布到公共注册表中. 否则,没有什么安全保障.

Do I have to use couchdb to build a registry that npm can talk to?

不,但是更容易. 基本上,是的,您这样做了,或者无论如何都必须有效地实现整个CouchDB API.

Is there a website or something to see package docs and such?

是的,转到https://www.npmjs.com/

See also


by  ICOPY.SITE