Plugins 如何将编译标记为失败,并使webpack以插件的非零返回值退出?

Plugins 如何将编译标记为失败,并使webpack以插件的非零返回值退出?,plugins,error-handling,webpack,return-code,Plugins,Error Handling,Webpack,Return Code,我想创建一个webpack插件来检查代码库,并有选择地将编译标记为失败,并导致webpack(如果没有在监视模式下运行)以非零返回代码退出 我注意到插件可以报告如下错误: compilation.errors.push(新错误('foo Error')) 但是,此类错误不会导致非零返回代码。似乎加载器(基于对巴贝尔加载器的检查)可以通过仅仅抛出一个异常来实现这一点 如何使webpack从其插件退出时返回非零代码?假设设置了bail标志,并且不想求助于以下黑客: if(保释){ process.

我想创建一个webpack插件来检查代码库,并有选择地将编译标记为失败,并导致webpack(如果没有在监视模式下运行)以非零返回代码退出

我注意到插件可以报告如下错误:

compilation.errors.push(新错误('foo Error'))
但是,此类错误不会导致非零返回代码。似乎加载器(基于对巴贝尔加载器的检查)可以通过仅仅抛出一个异常来实现这一点

如何使webpack从其插件退出时返回非零代码?假设设置了
bail
标志,并且不想求助于以下黑客:

if(保释){
process.on('exit',()=>process.exitCode=1)
}

插件可以通过向
run
hook:

compiler.plugin('run',(编译器,回调)=>{
回调(新错误(“问题描述”))
})
上面的代码导致webpack退出,返回代码为1

这适用于以下中标记为异步的所有方法:

async:最后一个参数是回调。签名:函数(错误、结果)


插件可以通过向
run
hook:

compiler.plugin('run',(编译器,回调)=>{
回调(新错误(“问题描述”))
})
上面的代码导致webpack退出,返回代码为1

这适用于以下中标记为异步的所有方法:

async:最后一个参数是回调。签名:函数(错误、结果)


那么同步钩子呢?同步钩子呢?