EslintWebpackPlugin

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

npm node tests coverage discussion size

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

此插件使用 ESlint 在 Webpack 构建过程中查找并修复 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 Node.js API 选项

[!注意]

你提供的配置选项将传递给 ESLint 类。这与你在 package.jsoneslint.config.js 中指定的选项(ESLint v9.0.0 后,之前是 .eslintrc)不同。更多详情请参阅 ESLint 文档

[!警告]

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

cache

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

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

cacheLocation

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

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

configType

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

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

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

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

context

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

代码检查的基本目录。

eslintPath

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

用于代码检查的 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

仅检查已更改的文件,跳过构建开始时的初始代码检查。

threads

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

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

错误和警告

默认情况下,插件将根据 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

将 ESLint 结果写入文件,例如用于 Jenkins CI 报告的 checkstyle xml 文件。

  • filePath: 输出报告文件的路径(相对于 output.path 或绝对路径)。
  • formatter: 你可以为输出文件传入不同的 formatter。如果没有传入,将使用默认/配置的格式化器。

更新日志

更新日志

贡献

我们欢迎所有贡献!

如果你是新用户,请花一些时间阅读我们的贡献指南。

贡献

许可证

MIT