阅读(3095)
赞(10)
npm 注册表 Registry
2021-09-07 11:24:32 更新
描述
为了按名称和版本解析包,npm 与实现 CommonJS 包注册表规范的注册表网站进行对话,以读取包信息。
NPM被配置为使用NPM公共登记处 https://registry.npmjs.org 默认。npm 公共注册表的使用受https://docs.npmjs.com/policies/terms 上提供的使用条款的约束。
您可以将 npm 配置为使用您喜欢的任何兼容注册表,甚至可以运行您自己的注册表。使用他人的注册表可能受其使用条款的约束。
npm 的包注册表实现也支持多个写入 API,以允许发布包和管理用户帐户信息。
npm 公共注册表由 CouchDB 数据库提供支持,其中有一个公共镜像位于https://skimdb.npmjs.com/registry。
使用的注册表 URL 由包的范围决定(请参阅 scope
。如果未指定范围,则使用默认注册表,该注册表由registry
config 参数提供。有关管理 npm 配置的更多信息npm config
, 请参阅npmrc
、 和config
。
npm 是否将有关我的任何信息发送回注册表?
是的。
在向注册表发出请求时,npm 添加两个标头,其中包含有关您的环境的信息:
Npm-Scope
– 如果您的项目有范围,则此标题将包含其范围。在未来,npm 希望构建使用此信息的注册表功能,以允许您为您的组织定制您的体验。Npm-In-CI
– 如果 npm 认为此安装在持续集成环境中运行,则设置为“true”,否则设置为“false”。这是通过查找以下环境变量来检测的:CI
,TDDIUM
,JENKINS_URL
,bamboo.buildKey
。如果您想了解更多信息,您可能会发现原始 PR 很有趣。这用于收集关于人类如何使用 npm 与构建农场的更好指标。
npm 注册表不会尝试将这些标头中的信息与可能在相同请求中使用的任何经过身份验证的帐户相关联。
如何防止我的包在官方注册表中发布?
设置"private": true
在您的package.json
完全阻止它被发布,或 "publishConfig":{"registry":"http://my-internal-registry.local"}
强制它只发布到您的内部/私有注册表。
有关package.json
package.json 文件中内容的更多信息,请参见。