Rush StackShopBlogEvents
Skip to main content

使用项目标签

Rush 的 项目标签 提供了一个很方便的办法来引用任意的 Rush 项目组, 在 rush.json 配置文件中使用 "tags" 属性可以将标签应用于项目中。

举个例子:

rush.json

  . . .
"projects": [
{
"packageName": "my-controls",
"projectFolder": "libraries/my-controls",
"reviewCategory": "production",

/**
* 设置一个可选的自定义标签可以用于筛选这个项目
* 举例:添加 "my-custom-tag" 将允许这个项目
* 被该命令选中 "rush list --only tag:my-custom-tag"
*/
"tags": [ "1.0.0-release", "frontend-team" ]
},

{
"packageName": "my-toolchain",
"projectFolder": "tools/my-toolchain",
"reviewCategory": "tools",
"tags": [ "tools" ]
}
]
. . .

关于 tag:my-custom-tag 选择器语法的详细信息, 参考 选择部分项目

标签语法

标签名称必须是一个或者多个由连字符或者斜杠分隔的单词, 单词可能包含小写 ASCII 字母、数字、.@ 字符。一些例子:

rush list --to tag:my-custom-tag
rush list --to tag:api-extractor.com
rush list --to tag:1.0.0

标签校验

rush.json"projects" 数组中允许任意的 "tags" 字符串很容易出错。如果有人不小心拼错了标签,或者他们使用了现在已经过时的旧标签,那可能需要一段时间才能发现这个错误。你可以使用 "allowedProjectTags" 设置来定义一个在你的 monorepo 中要使用的固定标签列表,这也提供了一个集中的地方来记录它们的含义。

rush.json

  . . .
/**
* 这是一个可以应用于 Rust 项目里的允许标签的可选但推荐的列表
* 使用该文件中的 "tags" 设置,这个列表对于防止拼写等错误时很有用,
* 并且它还提供了一个集中的地方来记录你的标签。如果 "allowedProjectTags" 列表是
* 未指定的,那么允许任何有效的标签。标签名称必须是一个或者多个单词
* 由连字符或者斜杠分隔, 单词可能包含小写 ASCII 字母、数字、
* "." 和 "@" 字符。
*/
"allowedProjectTags": [
// 将此标签应用于所有是 CLI 工具的 Rust 项目
"tools",

// 将此标签应用于所有属于我们公司前端团队的项目
"frontend-team",

// 使用这个标签来标记包含 QA 测试通过的项目
// 用于即将推出的产品。
"1.0.0-release"
], . . .