node.js - Grunt watch 任务似乎需要很长时间

标签 node.js gruntjs yeoman grunt-contrib-watch

我正在运行两个简单的任务,每个任务的运行时间都小于 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/

相关文章:

gruntjs - gruntfile 的 <%= yeoman.app %> 和 <%=yeoman.dist %> 变量

concatenation - Yeoman & RequireJS 使用动态生成的 HTML 构建?

javascript - 使用min的好处?

javascript - 将所有 LESS 文件定位到 CSS

performance - 如何加速 Yeoman 的发球任务?

javascript - 从 Request.js 请求方法返回结果?

javascript - 如何使用 Grunt 丑化子文件夹/子目录中的所有 javascript 文件?

mysql - Sql 相对数据库用户名

node.js - 找不到 AngularJS Express 咖啡 Assets Controller

javascript - NodeJS 中 unsigned short 的位移运算符