升级
升级到 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)