2015-04-05 34 views
6

我听说货物有能力自动重新编译已更改的源文件,但我很难弄清楚如何告诉它这样做。如何获得货物自动重新编译更改的文件?

现在,我手动运行cargo buildcargo run每次我想键入检查我的代码。我宁愿只是保存文件并在邻近的终端窗口中查看结果。

如果您仍然不知道我在说什么,我正在寻找相当于sbt ~compilesbt ~run的货物。

这似乎很奇怪很难找到,所以我开始怀疑它是否真的被支持。这是可能有人说货物可能查出修改过的文件并重新编译他们时,他的意思说的是,货物可以检测不变文件和避免重新编译他们,像make

回答

2

我认为区别在于运行cargo run两次不会构建代码两次,除非输入文件已更改。据我所知,Cargo没有内置的功能。您可以提交功能请求。同时,我建议你只使用watch。您也可以使用guard之类的东西。使用watch更简单,但会每N秒运行一次您的代码。 guard将需要更多的设置,但会更有效一些。

3

似乎没有内置任何支持,但有一个扩展(cargo-watch)使用inotify检测更改。

当我发现它时,它不会与稳定(或当前)的锈,但我已经修补它。 它仍然可以使用一些工作,但它肯定会加速编译/修复错误循环。

3

如果您正在处理运行中的服务器项目(例如熨斗),并且需要在文件更改时重新启动它,请参阅cargo watchdoesn't work as of writing this

在此期间,你可以像这样安装watchexec

cargo install watchexec 

,然后用它是这样的:

watchexec --restart "cargo run" 
+0

谢谢:) @robinst – 2017-01-20 05:35:47

+1

@PiyushChauhan我刚刚更新了答案使用Rust中内置的工具,这使得安装变得简单。一探究竟 :)。 – robinst 2017-01-23 04:58:44

+0

非常需要渐进式编译,我希望它们很快发布 – 2017-01-23 05:03:37

相关问题