NPM 包注册

🌙
手机阅读
本文目录结构

本文的功能

JavaScript 软件包注册表

说明

要按名称和版本解析软件包,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 由包的范围确定(请参阅参考资料 npm-scope)。如果未指定范围,则使用默认注册表,该注册表由 registryconfig 参数提供。见 npm config , npmrc 以及[npm config](/api/npm/cli/npm-config.html) 更多关于管理 NPM 的配置。

npm 是否会将有关我的任何信息发送回注册表?

是。

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

Npm-Scope–如果您的项目是作用域,则此标头将包含其作用域。将来,npm 希望构建使用此信息的注册表功能,以允许您自定义组织的体验。

Npm-In-CI–如果 npm 认为此安装正在持续集成环境中运行,则设置为“ true”,否则设置为“ false”。:这是通过寻找以下环境变量检测 CI,TDDIUM, JENKINS_URL,bamboo.buildKey。如果您想了解更多信息,您可能会发现原始的 PR 很有趣。

与构建农场相比,这用于收集关于人类如何使用 npm 的更好指标。

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

我可以运行自己的私人注册表吗?

是!

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

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

如果然后要发布一个程序包供全世界查看,则可以简单地覆盖该命令的–registry 选项 publish。

我不希望我的包在官方注册表中发布。是私人的

"private": true在您的 package.json 中进行设置,以完全禁止发布它,或"publishConfig":{"registry":"http://my-internal-registry.local"} 强制将其仅发布到内部注册表。

请参阅有关 package.jsonpackage.json 文件中内容的更多信息。

您会从我的注册表复制到公共注册表吗?

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

我是否必须使用沙发床来构建 npm 可以与之交谈的注册表?

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

是否有网站或软件包文档之类的东西?

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


AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>