npm-dist-tag

修改包分发标签

选择 CLI 版本

概要

npm dist-tag add <package-spec (with version)> [<tag>]
npm dist-tag rm <package-spec> <tag>
npm dist-tag ls [<package-spec>]
alias: dist-tags

描述

在包上添加、删除和枚举分发标签

  • add: 使用指定的标签标记包的指定版本,或者--tag 配置(如果未指定)。如果你在 auth-and-writes 上启用了双因素身份验证,则需要在命令行中使用 --otp <一次性密码> 包含一次性密码,或者根据你的 authtype 经历二次验证流程。

  • rm: 从包中清除不再使用的标签。如果你在 auth-and-writes 上启用了双因素身份验证,则需要在命令行中使用 --otp <一次性密码> 包含一次性密码,或者根据你的 authtype 经历二次验证流程。

  • ls: 显示包的所有分发标签,默认显示当前前缀中的包。如果没有指定任何操作,则为默认操作。

标签可以在安装包时用作版本引用,而不是使用特定的版本号。

npm install <name>@<tag>

在安装依赖项时,可以指定首选的带标签版本。

npm install --tag <tag>

(这也适用于任何其他解析和安装依赖项的命令,例如 npm dedupenpm updatenpm audit fix)。

发布包会将 latest 标签设置为发布的版本,除非使用 --tag 选项。例如,npm publish --tag=beta

默认情况下,npm install <pkg>(不带任何 @<version>@<tag> 指定符)会安装 latest 标签。

目的

标签可以用来提供别名,而不是版本号。

例如,一个项目可能选择拥有多个开发流,并为每个流使用不同的标签,例如 stablebetadevcanary

默认情况下,npm 使用 latest 标签来识别包的当前版本,并且 npm install <pkg>(不带任何 @<version>@<tag> 指定符)会安装 latest 标签。通常,项目只对稳定发布版本使用 latest 标签,而对不稳定版本(如预发布版本)使用其他标签。

next 标签被一些项目用来识别即将发布的版本。

除了 latest 之外,没有哪个标签对 npm 本身有任何特殊意义。

注意事项

此命令以前称为 npm tag,它只创建新标签,因此语法不同。

标签必须与版本号共享一个命名空间,因为它们是在同一个位置指定的:npm install <pkg>@<version>npm install <pkg>@<tag>

可以解释为有效语义版本范围的标签将被拒绝。例如,v1.4 不能用作标签,因为它被语义版本解释为 >=1.4.0 <1.5.0。请参阅 https://github.com/npm/npm/issues/6082

避免标签的语义版本问题最简单的方法是使用不以数字或字母 v 开头的标签。

配置

工作区

  • 默认
  • 类型:字符串(可以设置多次)

在当前项目的配置工作区上下文中运行命令,并通过仅运行此配置选项定义的工作区进行过滤。

workspace 配置的有效值为:

  • 工作区名称
  • 工作区目录路径
  • 父工作区目录路径(将选择该文件夹中的所有工作区)

在为 npm init 命令设置时,可以将其设置为尚未存在的工作区文件夹,以创建文件夹并将其设置为项目中的一个全新工作区。

此值不会导出到子进程的环境中。

工作区

  • 默认:null
  • 类型:null 或布尔值

设置为 true 以在**所有**配置工作区的上下文中运行命令。

显式将其设置为 false 会导致像 install 这样的命令完全忽略工作区。当未显式设置时

  • node_modules 树上操作的命令(安装、更新等)会将工作空间链接到 node_modules 文件夹中。 - 其他操作的命令(测试、执行、发布等)将在根项目上执行,*除非* 在 workspace 配置中指定了一个或多个工作空间。

此值不会导出到子进程的环境中。

include-workspace-root

  • 默认值:false
  • 类型:布尔值

在为命令启用工作空间时,包含工作空间根目录。

当值为 false 时,通过 workspace 配置指定单个工作空间,或通过 workspaces 标志指定所有工作空间,会导致 npm 仅在指定的工作空间上操作,而不在根项目上操作。

此值不会导出到子进程的环境中。

另请参阅