неверно отформатирован вывод eslint-webpack-плагина

#webpack #eslint

#webpack #eslint

Вопрос:

Я добавил eslint-webpack-plugin (v2.3.0) в свою конфигурацию webpack (v4.44.2), добавив new ESLintPlugin({ extensions: ["js", "ts", "tsx"] }) в список плагинов. Когда я запускаю webpack, все выходные данные eslint отображаются в одном файле, а все ошибки учитываются как одна ошибка:

 SomeFile.tsx
  151:3  error  warning  'var' is defined but never
                used
                @typescript-eslint/no-unused-vars   272:7   error    Include a
                description after the "// @ts-expect-error" directive to explain why
                the @ts-expect-error is necessary. The description must be 3 characters
                or longer  @typescript-eslint/ban-ts-comment   395:7   error    Include
                a description after the "// @ts-expect-error" directive to explain why
                the @ts-expect-error is necessary. The description must be 3 characters
                or longer  @typescript-eslint/ban-ts-comment   412:7   error    Include
                a description after the "// @ts-expect-error" directive to explain why
                the @ts-expect-error is necessary. The description must be 3 characters
                or longer  @typescript-eslint/ban-ts-comment   512:27  warning
                Unexpected any. Specify a different
                type
                @typescript-eslint/no-explicit-any 
                ...
                error    Unexpected 'debugger' statement           no-debugger  ✖ 107
                problems (16 errors, 91 warnings)   2 errors and 0 warnings potentially
                fixable with the `--fix` option.

✖ 1 problem (1 error, 0 warnings)
  

Как я могу получить вывод в фактическом стильном формате?

Редактировать:

конфигурация webpack:

 const path = require("path");
const { CheckerPlugin } = require("awesome-typescript-loader");
const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
const ESLintPlugin = require('eslint-webpack-plugin');

module.exports = {
  mode: "development",
  entry: "./src/index.tsx",
  output: {
    filename: "react_frontend.js",
    path: __dirname   "...",
    library: "..."
  },

  // Enable sourcemaps for debugging webpack's output.
  devtool: "source-map",

  resolve: {
    plugins: [new TsconfigPathsPlugin()],
    // Add '.ts' and '.tsx' as resolvable extensions.
    extensions: [".ts", ".tsx", ".js", ".json", ".scss", ".css"]
  },

  module: {
    rules: [
      // All files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'.
      { test: /.tsx?$/, loader: "awesome-typescript-loader" },
      // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
      {
        enforce: "pre",
        test: /.js$/,
        loader: "source-map-loader",
        exclude: ["/node_modules/"]
      },
      {
        test: /.scss$/,
        use: ["style-loader", "css-loader", "sass-loader"]
        // include: path.resolve(__dirname, '../'),
      },
      { test: /.css$/, use: ["style-loader", "css-loader"] }
    ]
  },

  plugins: [
    new CheckerPlugin(),
    new ESLintPlugin({ extensions: ["js", "ts", "tsx"] })
  ],

  // When importing a module whose path matches one of the following, just
  // assume a corresponding global variable exists and use that instead.
  // This is important because it allows us to avoid bundling all of our
  // dependencies, which allows browsers to cache those libraries between builds.
  externals: {
    "plotly.js": "Plotly",
    react: "React",
    "react-dom": "ReactDOM",
    "react-table": "ReactTable"
  }
};
  

конфигурация eslint:

 {
  "env": {
    "browser": true,
    "node": true,
    "es2021": true,
    "jest": true
  },
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:react-hooks/recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 12,
    "sourceType": "module"
  },
  "plugins": ["react", "@typescript-eslint"],
  "rules": {
    "@typescript-eslint/explicit-module-boundary-types": ["off"],
    "@typescript-eslint/no-var-requires": "off",
    "react/jsx-no-target-blank": ["error", { "enforceDynamicLinks": "never" }]
  },
  "settings": {
    "react": {
      "version": "detect"
    }
  }
}
  

Комментарии:

1. Можете ли вы поделиться своим webpack, eslint и любой другой соответствующей конфигурацией? Stylish — это форматировщик по умолчанию для плагина: github.com/webpack-contrib/eslint-webpack-plugin#formatter

2. Да, и на выходе используется стильный форматировщик (afaict), но он не анализируется или выводится неправильно или что-то в этом роде. редактировать: Упс случайно нажал enter. Добавлены конфигурации к описанию основного вопроса

3. Какую операционную систему и терминал вы используете? Мне интересно, может ли это быть проблемой с CRLF против Вывод НЧ в Windows…

4. Я использую macOS Catalina с терминалом.