"grunt watch"总是在出现致命错误后停止观看 - 如何让它在几秒钟后自动重试?



在某些项目中,我使用Grunt来完成SASS编译等任务。基本上它就像一个魅力,但只要我在 SASS 文件中输入,显然有时会发生错误,因为我没有完成。

我的 Gruntfile 的监视任务是这样的:

// watch files
watch: {
sass: {
files: ['web/var/static/**/*.scss','web/var/static/lib/**','web/var/static/js/*.js'],
tasks: ['default']
}
},

我从 cli 中的grunt watch开始。

咕噜咕噜日志中的示例错误:

Completed in 1.968s at Wed Sep 18 2019 13:43:01 GMT+0200 (Central European Summer Time) - Waiting...
>> File "web/var/static/sass/layout/footer.scss" changed.
Running "sass:dist" (sass) task
Running "autoprefixer:dist" (autoprefixer) task
>> 4 autoprefixed stylesheets created.
Running "cssmin:dist" (cssmin) task
>> 4 files created. 706.54 kB → 598.46 kB
Running "concat:dist" (concat) task
Running "uglify:main" (uglify) task
Done.
Completed in 1.769s at Wed Sep 18 2019 13:43:25 GMT+0200 (Central European Summer Time) - Waiting...
>> File "web/var/static/sass/layout/footer.scss" changed.
Running "sass:dist" (sass) task
Fatal error: Error: property "ul" must be followed by a ':'
on line 52 of web/var/static/sass/layout/footer.scss
from line 13 of web/var/static/sass/main.scss
>>     ul
----^

如果发生这种情况,我总是必须重新运行任务,因为咕噜声停止观看。这意味着:

  • 打开控制台窗口
  • 停止当前任务
  • 再次启动任务
  • 更改文件

这真的在放慢速度。

有没有人遇到过类似的问题?如何在新文件更改发生后立即出错后自动重试咕噜声?

spawn方法返回对生成的子项的引用。当孩子退出时,将调用doneFunction。您可以在出现错误时从以下函数重试:

function doneFunction(error, result, code) {
// If the exit code was non-zero and a fallback wasn't specified, an Error
// object, otherwise null.
error
// The result object is an object with the properties .stdout, .stderr, and
// .code (exit code).
result
// When result is coerced to a string, the value is stdout if the exit code
// was zero, the fallback if the exit code was non-zero and a fallback was
// specified, or stderr if the exit code was non-zero and a fallback was
// not specified.
String(result)
// The numeric exit code.
code
}

最新更新