猿问

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

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


我的 Gruntfile 的 watch 任务是这样的:


// watch files

watch: {

    sass: {

        files: ['web/var/static/**/*.scss','web/var/static/lib/**','web/var/static/js/*.js'],

        tasks: ['default']

    }

},

我从grunt watchcli 开始。


Grunt 日志中的示例错误:


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


   ----^

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


打开控制台窗口

停止当前任务

重新开始任务

更改文件

这真的是在放缓。


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


跃然一笑
浏览 177回答 1
1回答

凤凰求蛊

该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}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答