EslintWebpackPlugin

免责声明:EslintWebpackPlugin 是由社区成员维护的第三方包,它可能不支持 webpack 的相同支持、安全策略或许可证,并且不受 webpack 维护。

npm node tests coverage discussion size

此版本的 eslint-webpack-plugin 仅适用于 webpack 5。对于 webpack 4,请参阅 2.x 分支

此插件使用 eslint 来查找并修复 JavaScript 代码中的问题

入门

首先,您需要安装 eslint-webpack-plugin

npm install eslint-webpack-plugin --save-dev

yarn add -D eslint-webpack-plugin

pnpm add -D eslint-webpack-plugin

注意:

如果您尚未安装,还需要从 npm 安装 eslint >= 8

npm install eslint --save-dev

yarn add -D eslint

pnpm add -D eslint

然后将插件添加到您的 webpack 配置中。例如

const ESLintPlugin = require('eslint-webpack-plugin');

module.exports = {
  // ...
  plugins: [new ESLintPlugin(options)],
  // ...
};

选项

您可以传递 eslint 选项

注意

您提供的 config 选项将传递给 ESLint 类。这是一组不同的选项,不同于您在 package.json.eslintrc 中指定的选项。有关更多详细信息,请参阅 eslint 文档

警告:

在 eslint-webpack-plugin 版本 1 中,这些选项被传递给现已弃用的 CLIEngine

cache

  • 类型
type cache = boolean;
  • 默认值:true

默认情况下启用缓存以减少执行时间。

cacheLocation

  • 类型
type cacheLocation = string;
  • 默认值:node_modules/.cache/eslint-webpack-plugin/.eslintcache

指定缓存位置的路径。可以是文件或目录。

configType

  • 类型
type configType = "flat" | "eslintrc";
  • 默认值:eslintrc

指定与 ESLint 一起使用的配置类型。

  • eslintrc 是大多数 ESLint 版本中可用的经典配置格式。
  • flat 是 ESLint 8.21.0 中引入的新格式。

新配置格式在其 自己的文档 中进行了说明。

此配置格式被视为实验性,因此在 ESLint 8 中未在主 ESLint 模块中导出。您需要将 eslintPath 设置为 eslint/use-at-your-own-risk,才能使此配置格式正常工作。

context

  • 类型
type context = string;
  • 默认值:compiler.context

表示文件根目录的字符串。

eslintPath

  • 类型
type eslintPath = string;
  • 默认值:eslint

将用于进行 linting 的 eslint 实例的路径。如果 eslintPath 是一个文件夹(例如官方 eslint),或指定了 formatter 选项。现在您不必安装 eslint

extensions

  • 类型
type extensions = string | Array<string>;
  • 默认值:'js'

指定应检查的扩展名。

exclude

  • 类型
type exclude = string | Array<string>;
  • 默认值:'node_modules'

指定要排除的文件和/或目录。必须相对于 options.context

resourceQueryExclude

  • 类型
type resourceQueryExclude = RegExp | Array<RegExp>;
  • 默认值:[]

指定要排除的资源查询。

files

  • 类型
type files = string | Array<string>;
  • 默认值:null

指定目录、文件或 glob。必须相对于 options.context。目录将递归遍历,以查找与 options.extensions 匹配的文件。文件和 glob 模式会忽略 options.extensions

fix

  • 类型
type fix = boolean;
  • 默认值:false

将启用 ESLint 自动修复功能

请注意:此选项将更改源文件。

formatter

  • 类型
type formatter = string| (
  results:  Array<import('eslint').ESLint.LintResult>,
  data?: import('eslint').ESLint.LintResultData | undefined
) => string
  • 默认值:'stylish'

接受一个函数,该函数将有一个参数:一个 eslint 消息(对象)数组。该函数必须将输出作为字符串返回。您可以使用官方 eslint 格式化程序

lintDirtyModulesOnly

  • 类型
type lintDirtyModulesOnly = boolean;
  • 默认值:false

仅对更改的文件进行 Lint,启动时跳过 Lint。

threads

  • 类型
type threads = boolean | number;
  • 默认值:false

将在线程池中运行 Lint 任务。除非您指定一个数字,否则池大小是自动的。

错误和警告

默认情况下,插件将根据 eslint 错误/警告计数自动调整错误报告。您仍然可以使用 emitError emitWarning 选项强制执行此行为

emitError

  • 类型
type emitError = boolean;
  • 默认值:true

始终会发出找到的错误,要禁用,请设置为 false

emitWarning

  • 类型
type emitWarning = boolean;
  • 默认值:true

始终会发出找到的警告,要禁用,请设置为 false

failOnError

  • 类型
type failOnError = boolean;
  • 默认值:true

如果存在任何错误,将导致模块构建失败,要禁用,请设置为 false

failOnWarning

  • 类型
type failOnWarning = boolean;
  • 默认值:false

如果存在任何警告,将导致模块构建失败,如果设置为 true

quiet

  • 类型
type quiet = boolean;
  • 默认值:false

如果设置为 true,将仅处理和报告错误,而忽略警告。

outputReport

  • 类型
type outputReport =
  | boolean
  | {
      filePath?: string | undefined;
      formatter?:
        | (
            | string
            | ((
                results: Array<import('eslint').ESLint.LintResult>,
                data?: import('eslint').ESLint.LintResultData | undefined,
              ) => string)
          )
        | undefined;
    };
  • 默认值:false

将错误的输出写入文件,例如用于在 Jenkins CI 上报告的 checkstyle xml 文件。

filePath 是绝对路径或相对于 webpack 配置:output.path。您可以为输出文件传入不同的 formatter,如果没有传入,将使用默认/配置的 formatter。

更新日志

变更日志

许可证

MIT