Commands
boundaries
通过检查包管理器工作空间违规来确保 Turborepo 功能正常工作,支持标签和依赖规则配置
Boundaries 通过检查包管理器工作空间违规来确保 Turborepo 功能正常工作。
turbo boundaries
此功能是实验性的,我们正在寻求您对 [Boundaries RFC](https://github.com/vercel/turborepo/discussions/9435) 的反馈。
此命令将通知两种类型的违规:
- 导入包目录外的文件
- 导入未在包的
package.json中指定为依赖项的包
标签
Boundaries 还有一个功能,允许您为包添加标签。这些标签可用于创建 Boundaries 检查的规则。例如,您可以为 UI 包添加 internal 标签:
{
"tags": ["internal"]
}
然后声明一个规则,即具有 public 标签的包不能依赖具有 internal 标签的包:
{
"boundaries": {
"tags": {
"public": {
"dependencies": {
"deny": ["internal"]
}
}
}
}
}
或者,您可能希望 public 包只依赖其他 public 包:
{
"boundaries": {
"tags": {
"public": {
"dependencies": {
"allow": ["public"]
}
}
}
}
}
同样,您可以为标签的依赖者添加限制,即导入具有该标签的包的包。
{
"boundaries": {
"tags": {
"private": {
"dependents": {
"deny": ["public"]
}
}
}
}
}
包名也可以在允许和拒绝列表中代替标签使用。
{
"boundaries": {
"tags": {
"private": {
"dependents": {
"deny": ["@repo/my-pkg"]
}
}
}
}
}
标签允许您确保错误的包不会在图中的某个地方被导入。这些规则甚至适用于依赖项的依赖项,因此如果您导入一个包,而该包又导入另一个具有被拒绝标签的包,您仍然会收到规则违规。