咕噜表的任务似乎需要很长时间

我正在运行两个简单的任务,每个任务的运行时间都小于100ms,但是在watch命令下运行时,两个组合任务总共花费了大约8秒(每个任务的开销似乎为3.5秒)。 我正在使用它与现场重新开发,我觉得非常沮丧。 我尝试设置spawnfalse但这似乎打破了它,并没有任何相关的任务运行。

这里是从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)

文件更改后,观看执行任务,但完成后,观看重新加载模块(!)并再次观看。

详细看看问题:

 grunt tasknamewatch --verbose 

我已经在手表任务上尝试过recursion,但没有成功。

 watch: { ..., tasks: ['sometask', 'watch'] } 

运行良好的简单解决scheme是使用“grunt-este-watch”。 您可以阅读这里所需的步骤: https : //stackoverflow.com/a/33920834/2741005

是的,贡献是慢了很多,认为这可能导致了这个问题。 我唯一可以build议的是尽量减less你正在运行的监视目标的数量; 它看起来像你是从app复制的CSS到tmp ,然后重新加载? 可能会更好地将sass直接保存到tmp ,例如sass:dev任务,这样你只能运行两次。 这是我通常这样做的:

 watch: { sass: { files: [ 'styles/**/*.scss' ], tasks: ['sass', 'copy:dev', 'cssmin'] }, css: { options: { livereload: true }, files: [ 'dist/css/master.css' ], tasks: [] } } 

我不禁想到这是在不同目标上运行拷贝的额外开销,当然你可以在任务数组中运行任意数量的任务。 🙂