正如迁移到 Gulp 4 的人可能知道的gulp.series
那样,如果系列中的任务未正确发出完成信号,则不会继续执行。
我的问题是它处理这种错误的方式——它只是控制台中的一条消息(你忘记发出异步完成信号了吗?);gulp 仍然以错误代码 0 退出。这意味着,如果您在更复杂的构建脚本中运行 gulp,对于该脚本来说,看起来一切正常,并且 gulp 任务成功完成,但显然没有。(相反,如果您使用 抛出错误gulpUtil.plugin error
,则会产生非 0 错误代码。)
所以我的问题是:您将如何“从外部”检测到发生了此类错误?
- 在这种情况下,有没有办法让 gulp 退出非 0?(是否有我可以订阅并引发错误的事件,或者我可以设置的配置等)
- 我是否应该尝试检查应该生成的资产是否存在?(我发现这个解决方案非常脆弱。)
- 我是否应该“观看”控制台消息并寻找特定的字符串,例如“您是否忘记发出信号...”?(啊!)
- (是的,我知道我可以用 gulp 做所有事情,然后我就不需要检查错误代码,但我们假设,实际上,我做不到。)
还有其他我没有想到的可能性吗?