我正在运行两个简单的任务,每个任务的运行时间都小于 100 毫秒,但是当在 watch 命令下运行时,这两个合并的任务总共花费了大约 8 秒(每个任务似乎有 3.5 秒的开销)。我将它与 live-reload 一起用于开发,我发现它非常令人沮丧。我尝试将 spawn
设置为 false
但这似乎破坏了它并且没有运行任何相关任务。
这是更改 sass 文件时的示例输出。
>> File "app/styles/main.scss" changed.
File "app/styles/main.css" created.
Done, without errors.
Elapsed time
loading tasks 4ms ▇▇▇▇▇ 9%
sass 1ms ▇▇ 2%
sass:dist 39ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 89%
Total 44ms
Completed in 3.862s at Mon Nov 18 2013 17:05:57 GMT+0000 (GMT) - Waiting...
OK
>> File "app/styles/main.css" changed.
Running "copy:styles" (copy) task
Copied 1 files
Done, without errors.
Elapsed time
loading tasks 4ms ▇▇▇▇▇▇▇▇▇▇▇▇ 24%
copy:styles 13ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 76%
Total 17ms
Completed in 3.704s at Mon Nov 18 2013 17:06:01 GMT+0000 (GMT) - Waiting...
OK
>> File ".tmp/styles/main.css" changed.
... Reload .tmp/styles/main.css ...
... Reload .tmp/styles/main.css ...
Completed in 0.000s at Mon Nov 18 2013 17:06:01 GMT+0000 (GMT) - Waiting...
在 node.js 0.10.20 上使用 grunt 0.4.1(和 grunt-cli 0.1.11)。在 2012 Macbook Air (OS X 10.8.5) 上运行
最佳答案
文件更改后,watch 执行任务,但完成后,watch 重新加载模块(!)并再次观看。
详细看问题:
grunt tasknamewatch --verbose
我已经尝试对 watch 任务进行递归,但没有成功。
watch: {
...,
tasks: ['sometask', 'watch']
}
一个简单有效的解决方案是使用“grunt-este-watch”。您可以在此处阅读所需的步骤:https://stackoverflow.com/a/33920834/2741005
关于node.js - Grunt watch 任务似乎需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20121361/