升级
升级到 2.0
更新 turbo.json
从 1.x 升级到 2.0,首先运行:
这将更新你的 turbo.json 文件,以适应从 1.x 到 2.0 的许多重大变更。
此外,工作空间中任何没有 name 字段的 package.json 都会被添加该字段。
Good to know:
你也可以手动单独运行每个代码修改。访问 代码修改页面 了解更多信息。
在根目录的 package.json 中添加 packageManager 字段
packageManager 字段 是 Node.js 生态系统的一个约定,用于定义工作空间中预期使用的包管理器。
Turborepo 2.0 要求你的工作空间定义这个字段,以提高代码库的稳定性和行为可预测性。如果你还没有这个字段,请将其添加到根目录的 package.json 中:
更新 eslint-config-turbo
eslint-config-turbo 帮助识别需要添加到 env 键中用于缓存的环境变量。如果你正在使用它,请确保将其更新到与你的主版本相匹配的版本。
更新 turbo run 命令
Turborepo 2.0 包含了 turbo run 命令的行为和正确性改进。以下是变更摘要,这些变更可能会也可能不会影响你的代码库:
- 环境变量的严格模式现在是默认设置,从宽松模式转变(PR)
- 如果你发现任务中的脚本缺少环境变量,你可以使用
--env-mode选项 在每个命令的基础上选择退出这个行为,以逐步迁移。我们建议你更新任务中的env键 以包含所有环境变量,这样你就可以尽快删除--env-mode选项。 - 如果你想将仓库的默认设置改回宽松模式,你可以 使用
envMode配置 来实现。
- 如果你发现任务中的脚本缺少环境变量,你可以使用
- 工作空间根目录现在是所有包的隐式依赖项(PR)
- 移除了
--ignore,改用--filter和下面的图正确性更改(PR) - 移除了
--scope标志(自 1.2 起已弃用)(PR) - 现在在哈希计算中使用根
package.json中的engines字段(PR) --filter不再为包名推断命名空间(PR)- 当没有匹配到包名或目录时,
--filter现在会报错(PR) --only现在限制任务依赖而不是包依赖(PR)