作为迁移到Gulp 4的人可能已经知道,
我的问题在于它处理这种错误的方式 - 它只是在控制台中显示一条消息(Did you forget to signal async completion?); gulp仍然以0的错误代码退出。这意味着,如果您在更复杂的构建脚本中运行gulp,对于该脚本来说,它看起来像一切都很好,gulp任务成功完成,但实际上并非如此。(相比之下,如果您使用
因此,我的问题是:你如何从“外部”检测到这种错误?
gulp.series
不会继续执行系列中的任务,如果一个任务没有正确地发出完成信号。我的问题在于它处理这种错误的方式 - 它只是在控制台中显示一条消息(Did you forget to signal async completion?); gulp仍然以0的错误代码退出。这意味着,如果您在更复杂的构建脚本中运行gulp,对于该脚本来说,它看起来像一切都很好,gulp任务成功完成,但实际上并非如此。(相比之下,如果您使用
gulpUtil.plugin error
抛出错误,则会导致非0的错误代码。)因此,我的问题是:你如何从“外部”检测到这种错误?
- 是否有一种方法使gulp在这种情况下退出非0? (是否有我可以订阅并抛出错误的事件或设置的配置等)
- 我应该尝试检查应该生成的资源是否存在吗? (我认为这种解决方案非常脆弱。)
- 我应该“监视”控制台消息并寻找特定字符串,例如“Did you forget to signal…”吗? (呃!)
- (是的,我知道我可以用gulp做所有事情,然后我就不需要检查错误代码了,但让我们假设在现实中我不能这样做。)