本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
npm 标签处理
npm 注册表支持标签,这些标签是程序包版本的字符串别名。您可以使用标签来提供别名,而不是使用版本号。例如,您有一个包含多个开发流的项目,并且您对每个流使用不同的标签(例如、stable
beta
、dev
、canary
)。有关更多信息,请参阅 np m Docs 上的 dist-tag
默认情况下,npm 使用 latest
标签来标识程序包的当前版本。npm install
(不带 pkg
@
或 version
@
说明符)会安装最新的标签。通常,项目仅对稳定版本使用最新标签。对于不稳定版本或预发行版本使用其他标签。tag
使用 npm 客户端编辑标签
这三个npm dist-tag
命令(add
rm
、和ls
)在 CodeCatalyst 软件包存储库中的功能与它们在默认 npm 注册表
npm 标签和上游存储库
当npm
请求某个软件包的标签以及该软件包的版本也存在于上游存储库中时,会先 CodeCatalyst 合并这些标签,然后再将其返回给客户端。例如,名为的存储库R
有一个名为的上游存储库U
。下表显示了两个存储库中都web-helper
存在的名为的软件包的标签。
存储库 | 软件包名称 | 程序包标签 |
---|---|---|
R |
|
最新(版本 1.0.0 的别名) |
U |
|
alpha(版本 1.0.1 的别名) |
在这种情况下,当 npm 客户端从存储库中获取web-helper
软件包的标签时R
,它会同时收到最新标签和 alpha 标签。标签指向的版本不会改变。
如果上游和本地存储库中的同一个软件包上都存在相同的标签,则 CodeCatalyst 使用上次更新的标签。例如,假设 webhelper 上的标签已修改为如下所示。
存储库 | 软件包名称 | 程序包标签 | 上次更新 |
---|---|---|---|
R |
|
最新(版本 1.0.0 的别名) |
2023年1月1日 |
U |
|
最新(版本 1.0.1 的别名) |
2023 年 6 月 1 日 |
在这种情况下,当 npm 客户端从存储库中获取包 web-helper 的标签时R
,最新的标签将别名为 1.0.1 版本,因为它是在上次更新的。这使得通过运行可以轻松使用上游存储库中尚未存在于本地存储库中的新软件包版本npm
update
。