我有一个 Grunt watch 任务,在检测文件更改和开始工作之间似乎有很大的延迟。
常见的输出如下:
>> File "src/static/app/brandManager/addChannel.html" changed.
Running "html2js:main" (html2js) task
Successfully converted 13 html templates to js.
Done, without errors.
Execution Time (2014-02-11 01:38:27 UTC)
loading tasks 101ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 17%
html2js:main 495ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 83%
Total 597ms
... Reload src/static/app/brandManager/addChannel.html ...
Completed in 14.469s at Tue Feb 11 2014 12:38:28 GMT+1100 (EST) - Waiting...
在这里,我们看到实际工作只花了597ms
,但总任务运行了14.469s
。
这是我的 Gruntfile 中的相关片段:
src: {
js: ['src/static/app/**/*.js', '!src/static/app/**/*.spec.js'],
},
watch: {
js: {
files: ['<%= src.js %>'],
tasks: ['fileblocks','newer:jshint:all'],
options: {
livereload: false
}
},
livereload: {
options: {
livereload: '<%= connect.options.livereload %>'
},
files: [
'<%= src.html %>',
'.tmp/styles/{,*/}*.css',
'<%= src.assets %>'
]
}
}
调用哪个监视目标似乎无关紧要,总是有延迟。延迟的时间量不一致——介于 5 秒到 60 秒之间(但平均而言,大约 15 到 20 秒)。
这真的很刺激我的 js 氛围。我该如何调试可能是什么原因?
编辑:
正在观看的文件数量并不小,但远非巨大:
--- static/app ‹master› find -f . | wc -l
>> 51