简体   繁体   English

eslint-loader failOnError 选项不适用于 ts-loader 和 webpack-dev-server

[英]eslint-loader failOnError option doesn't work with ts-loader and webpack-dev-server

Abstract抽象的

Problems问题

  • eslint-loader does not stop compiling, and ts-loader error is displayed. eslint-loader 不停止编译,显示 ts-loader 错误。
  • ts-loader error is still old even if the TS code is rewritten.即使重写了 TS 代码,ts-loader 错误仍然是旧的。

Procedure程序

1. Start dev-server: yarn start = webpack-dev-server --mode development 1.启动dev-server: yarn start = webpack-dev-server --mode development

package.json package.json

{
  "name": "eslint-ts-loader-error",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "start": "webpack-dev-server --mode development",
    "build": "webpack --mode production"
  },
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "2.30.0",
    "@typescript-eslint/parser": "2.30.0",
    "babel-loader": "8.0.6",
    "eslint": "6.8.0",
    "eslint-loader": "4.0.2",
    "ts-loader": "6.2.2",
    "typescript": "3.8.3",
    "webpack": "4.33.0",
    "webpack-cli": "3.3.4",
    "webpack-dev-server": "3.7.1"
  }
}

webpack.config.js webpack.config.js

const path = require('path');

module.exports = {
  entry: './src/main.ts',
  output: {
    path: path.resolve(__dirname, 'dist/'),
    filename: '[name].js',
  },
  module: {
    rules: [
      {
        test: /\.(ts|tsx)$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'ts-loader',
          },
        ],
      },
      {
        test: /\.(ts|tsx)$/,
        enforce: 'pre',
        exclude: /node_modules/,
        use: [
          {
            loader: 'eslint-loader',
            options: {
              failOnError: true,
            },
          },
        ],
      },
    ],
  },
};

2. Edit and save.ts file. 2. 编辑并保存.ts 文件。

main.ts主要的.ts

const a: string = 100;
console.log(a);

-> Error: ts-loader (As expected) -> 错误:ts-loader(如预期的那样)

ts-loader: Type '100' is not assignable to type 'string'.

3. Edit and save.ts file. 3. 编辑并保存.ts 文件。

const a: string = 100;
// console.log(a);

-> Error: eslint-loader, ts-loader (Unexpected) -> 错误:eslint-loader、ts-loader(意外)

eslint-loader: 'a' is assigned a value but never used  no-unused-vars
ts-loader: Type '100' is not assignable to type 'string'.

[Expected] When an error occurs in eslint-loader, the compilation process is stopped and the error of ts-loader is not displayed. 【预期】当eslint-loader出错时,停止编译,不显示ts-loader的错误。

4. Edit and save.ts file. 4. 编辑并保存.ts 文件。

const a: boolean = 100;
// console.log(a);

-> Error: eslint-loader, ts-loader (Unexpected) -> 错误:eslint-loader、ts-loader(意外)

eslint-loader: 'a' is assigned a value but never used  no-unused-vars
ts-loader: Type '100' is not assignable to type 'string'.

ts-loader error is not the latest one, it's the old one! ts-loader 错误不是最新的,是旧的!

Is this evidence that the processing is not up to the ts-loader?这是否表明处理不取决于 ts-loader?

I'm not sure why this is happening.我不确定为什么会这样。

Is it a problem of webpack-dev-server instead of eslint-loader?是 webpack-dev-server 而不是 eslint-loader 的问题吗?

I need someone to help me.我需要有人帮助我。

Envirioment环境

  • macOS Catalina v10.15.4 macOS Catalina v10.15.4
  • Node.js v12.16.2 Node.js v12.16.2
  • npm v6.14.4 npm v6.14.4
  • yarn v1.22.4纱线 v1.22.4

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM