Typescript 如何在TS编译错误时使webpack2失败?

Typescript 如何在TS编译错误时使webpack2失败?,typescript,error-handling,webpack,webpack-2,ts-loader,Typescript,Error Handling,Webpack,Webpack 2,Ts Loader,我有一个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. 这是一个正确的错

我有一个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都会构建捆绑包。我希望webpack抛出它已经发出的错误(红色),并在发生这种情况时停止捆绑进程

我尝试在我的webpack.config中添加配置开关:

bail: true,
但这并没有解决问题

如果我应该在加载程序中为TS识别某些内容,我将如何告诉它将错误推送到webpack2?我尝试了以下TS加载程序选项,但没有将错误传播到Web包的效果:

module: {
    rules: [
        {
            test: /\.tsx?$/,
            use: ['ts-loader?' + JSON.stringify({transpileOnly: false, noEmitOnError: true})],
            exclude: [/node_modules/, /test/]
        },
然而,这也不起作用

似乎应该在webpack或其加载程序中内置某种方法来正确传播错误,直至使流程失败。任何人都有一个解决方案,可以让我配置这些冒泡故障,并且仍然允许我查看正在产生的TS错误(这样我不仅可以知道构建失败,还可以知道导致它的特定TS错误)

我做了一些研究,发现有人声称使用(
webpackfail-plugin
)可以解决这个问题,然而,这显然只是针对webpack1。据推测,webpack2解决了这个问题,正如插件明确宣称的那样。然而,这不是真的,因为我在这里的帖子证实了这一点。事实上,ts加载器本身声称您需要使用Webpack2插件(请参阅)。为了尝试所有可能的解决方案,我将插件导入到我的项目中,并尝试按照使用说明文档()使用它。但是,唉,它并没有失败


我在试图理解Webpack2的解决方案时,简直是疯了。有人对此给出了合理的答案吗?

只需在您的网页配置中添加一个插件,如下所示:

plugins: [function() {
    this.plugin("done", function(stats) {
        //Since webpack dependent Stats.js
        //Just see the API of Stats.js
        //You can do anything with the stats output
        if (stats && stats.hasErrors()) {
            stats.toJson().errors.forEach((err) => {
                console.error(err);
            });
            process.exit(1);
        }
    }
}]
使用ts loader 2.2.2在网页包2.6.1中进行测试

希望这有帮助:)