如何将编译标记为失败并使 webpack 从插件中以非零 return 值退出?
How to mark a compilation as failed and make webpack to exit with non-zero return value from a plugin?
我想创建一个 webpack 插件来检查代码库,并可选择将编译标记为失败并导致 webpack(如果不是 运行 在监视模式下)以非零值退出 return代码。
我注意到插件可以像这样报告错误:
compilation.errors.push(new Error('foo error'))
然而,此类错误不会导致非零 return 代码。加载程序(基于对 babel-loader
的检查)似乎可以通过抛出异常来实现。
如何使 webpack 以其插件中的非零 return 代码退出? 假设设置了 bail
标志,但没有设置想求助于黑客:
if (bail) {
process.on('exit', () => process.exitCode = 1)
}
插件可以通过将 true-ish 对象传递给 run
钩子的回调来报告失败:
compiler.plugin('run', (compiler, callback) => {
callback(new Error('problem description'))
})
上面的代码导致 webpack 以 return 代码 1
.
退出
这适用于 documentation 中标记为 async 的所有方法:
async: Last parameter is a callback. Signature: function(err, result)
我想创建一个 webpack 插件来检查代码库,并可选择将编译标记为失败并导致 webpack(如果不是 运行 在监视模式下)以非零值退出 return代码。
我注意到插件可以像这样报告错误:
compilation.errors.push(new Error('foo error'))
然而,此类错误不会导致非零 return 代码。加载程序(基于对 babel-loader
的检查)似乎可以通过抛出异常来实现。
如何使 webpack 以其插件中的非零 return 代码退出? 假设设置了 bail
标志,但没有设置想求助于黑客:
if (bail) {
process.on('exit', () => process.exitCode = 1)
}
插件可以通过将 true-ish 对象传递给 run
钩子的回调来报告失败:
compiler.plugin('run', (compiler, callback) => {
callback(new Error('problem description'))
})
上面的代码导致 webpack 以 return 代码 1
.
这适用于 documentation 中标记为 async 的所有方法:
async: Last parameter is a callback. Signature: function(err, result)