我有一个运行良好的 webpack2 配置,除了如果出现 TS 编译错误,我不希望构建继续进行。这是我得到的合法错误的示例:
ERROR in ./ClientSide/app/panels/panel-side-bar/my-organizer/my-organizer.component.ts
(127,33): error TS2346: Supplied parameters do not match any signature of call target.
这是一个正确的错误,但我希望 webpack 不只是继续。目前,无论在 webpack 编译过程中出现什么 TS 编译错误,webpack 仍然会构建 bundle。我想让 webpack 抛出它已经发出的错误(红色),并在发生这种情况时停止捆绑过程。
我尝试在我的 webpack.config 中添加配置开关:
bail: true,
但这并没有解决问题。
如果我应该在 TS 加载器中识别某些内容,我将如何告诉它将错误推送到 webpack2?我尝试了以下 TS 加载器选项,但它们没有将错误传播到 webpack 的效果:
module: {
rules: [
{
test: /\.tsx?$/,
use: ['ts-loader?' + JSON.stringify({transpileOnly: false, noEmitOnError: true})],
exclude: [/node_modules/, /test/]
},
但是,这也不起作用。
似乎应该以某种方式内置到 webpack 或其加载器中,以正确传播错误以使该过程失败。任何人都有一个解决方案,可以让我配置此类故障以冒泡,并且仍然允许我查看正在产生的 TS 错误(这样我不仅可以知道构建失败,而且可以知道导致它的特定 TS 错误)。
我做了一些研究,发现有人声称使用 ( webpack-fail-plugin
) 应该可以解决这个问题,但是,这显然只适用于 webpack 1。据说,webpack2 解决了这个问题,因为该插件明确声称https://www.npmjs.com/包/webpack-fail-plugin。然而,这不是真的,正如我在这里的帖子所证实的那样。而且,事实上,ts-loader 本身声称您需要使用 webpack 2 的插件(请参阅https://github.com/TypeStrong/ts-loader#failing-the-build-on-typescript-compilation-错误)。为了尝试所有最后可能的解决方案,我将插件导入我的项目并尝试按照使用文档(https://github.com/TiddoLangerak/webpack-fail-plugin#usage)使用它。但是,唉,它失败了而不是构建。
我在试图理解 webpack 2 的解决方案时失去了理智。有没有人对此给出合理的答案?