Turborepo logo

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

没有依赖感知的持久任务

某些工具对 monorepo 不友好,并且不热重载依赖项中的模块。在这些情况下,你应该将任务标记为 interruptible: true,以便在检测到相关更改时,turbo watch 重新启动任务。

局限性

缓存

使用观察模式缓存任务目前是实验性的,在 --experimental-write-cache 标志下。

终端
turbo run your-tasks --experimental-write-cache

任务输出

如果你的任务写入受源代码控制的文件,则观察模式有可能进入无限循环。这是因为观察模式监视你的文件更改,并将重新运行已更改包中的任务。如果任务创建了一个更改,那么这将再次触发该任务。

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

小时

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

本页内容