此版本的 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。