Turborepo

watch

根据代码更改重新运行存储库中的任务。

终端
turbo watch [tasks]

turbo watch 具有依赖感知能力,这意味着任务将按照turbo.json 中配置的顺序重新运行。

如果没有提供任务,turbo 将显示存储库中可用于软件包的任务。

终端
turbo watch

turbo watch 与持久任务一起使用

持久任务用 "persistent": true 标记,这意味着它们不会退出。因此,它们不能在您的任务图中被依赖。

这意味着在使用 turbo watch 时,持久任务将被忽略,其工作方式与使用 turbo run 相同,允许同时运行持久任务和非持久任务。

具有依赖感知能力的持久任务

当您的脚本具有内置的监视器(如 next dev)能够检测依赖项中的更改时,您无需使用 turbo watch。相反,使用脚本的内置监视器,并使用 "persistent": true 将任务标记为长时间运行。

不具备依赖感知能力的持久任务

某些工具不适合单体仓库,并且不会热重载依赖项中的模块。在这些情况下,您应该将任务标记为 interruptible: true,以便在检测到相关更改时 turbo watch 重新启动任务。

局限性

缓存

使用 turbo watch 执行任务时,所有缓存操作均被禁用。

任务输出

如果您的任务写入到检入源代码控制的文件中,则监视模式可能会无限循环运行。这是因为监视模式会监视您的文件中的更改,并重新运行已更改的软件包中的任务。如果任务创建了更改,则会再次触发该任务。

监视模式具有一些使用文件哈希来防止这种情况发生的逻辑,但并非万无一失。为了避免此问题,我们建议从 git 中删除所有任务输出。

小时

节省的总计算量
开始使用
远程缓存 →

本页内容