ESLintrc生成器

下一个

该生成器根据四个选项创建即用的.eslintrc.json配置:浏览器或Node环境、TypeScript支持和React支持。它会组合eslint:recommended、与所选内容对应的TypeScript或React插件以及若干合理的规则覆盖设置,您可以直接将结果粘贴到项目中。

如何生成 ESLint 配置文件

  1. 1

    选择环境

    选择代码在浏览器、Node.js 或两者中运行。生成器会设置相应的`env`条目,以及`es2022`。

  2. 2

    启用 TypeScript

    勾选 TypeScript 后,生成器会添加`@typescript-eslint/parser`和推荐的 TypeScript 插件。

  3. 3

    启用 React

    勾选 React 后,生成器会添加带推荐预设的`eslint-plugin-react`。

  4. 4

    生成

    点击按钮后,配置将以格式清晰的 JSON 形式生成。

  5. 5

    复制到项目中

    将输出内容粘贴到`.eslintrc.json`中,并安装配置所引用的插件。

生成的配置包含什么

生成器始终以eslint:recommended为基础,并只添加与您的选择对应的内容:

  • 包含browser和/或nodeenv,以及es2022
  • 启用 TypeScript 时,添加@typescript-eslint/parserplugin:@typescript-eslint/recommended
  • 启用 React 时,添加plugin:react/recommended
  • no-consoleno-unused-vars设置为warn

输出是采用传统.eslintrc.json形式的简单 JSON 对象,可直接粘贴,并可根据自己的规则进行扩展。

平面配置与传统配置对比

ESLint 9 已弃用 .eslintrc.* 格式,转而采用扁平配置格式(eslint.config.js)。主要差异如下:

属性 传统格式 (.eslintrc) 平面格式 (eslint.config.js)
格式 JSON 、 YAML 或 CommonJS ESM 或 CommonJS JavaScript 模块
扩展 extends: ["plugin:react/recommended"] 扩展至数组:...reactPlugin.configs.recommended
覆盖设置 使用全局模式的 overrides 数组 导出数组中包含多个对象
全局变量 env: { browser: true } 包含显式导入项的 languageOptions.globals
忽略 .eslintignore 文件 配置数组中的 ignores 字段

新项目应采用扁平化配置;现有项目可在10.x系列版本中继续沿用旧配置,但建议进行迁移。

插件生态系统

典型的 React/TS 项目插件:

@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier

这相当于为一个具有中等个性化设置的系统配置提供了六个安装包。生成器只会添加您选择的插件,因此您只需安装配置所引用的内容。

与 Prettier 共存

Prettier 负责格式设置;ESLint 则负责除格式外的语法正确性与风格规范。为避免冲突:

  1. 安装 eslint-config-prettier,并将其作为扩展配置文件中的最后一个项目添加。
  2. 该功能会关闭所有与 Prettier 输出结果存在冲突的 ESLint 规则。
  3. 单独运行 Prettier(在编辑器保存时、提交前钩子阶段以及持续集成过程中)。

请勿在新项目中使用 eslint-plugin-prettier;该工具会在 ESLint 中运行 Prettier,从而拖慢 ESLint 的运行速度。建议将这两个工具分开使用。

规则调优技巧

  • 初始状态宽松,逐步收紧约束。 在出现错误前启用警告功能。
  • 为测试进行覆盖。 测试文件通常需要启用 no-unused-expressions 的宽松配置以及 Jest 全局变量支持。
  • 为脚本进行覆盖。 构建脚本可能需要使用 Node 全局变量,但无需全局添加 env: node
  • 为覆盖添加说明。 每条规则的修改均需附注说明理由。

与您的编辑器匹配的配置

VS Code 需要安装并配置 ESLint 扩展。请将这些设置添加到工作区配置中,以便在保存时自动修复错误。

{
  "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
  "eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}

常见问题

对于新项目,请使用扁平配置(eslint.config.js)。此生成器输出传统的.eslintrc.json格式,ESLint 在旧模式下可直接读取;如果日后迁移,变化内容见上方对比表。

是的,如果您使用的是TypeScript。@typescript-eslint/parser@typescript-eslint/eslint-plugin可启用支持TypeScript的代码检查功能;对于基于类型规则(而非仅限语法规则)的检查,请同时为解析器配置project: './tsconfig.json'

通常情况下,持续集成(CI)环境中缺少依赖项。请确保本地环境与CI环境中的@typescript-eslint/*版本、插件及ESLint版本一致;在CI环境中使用npm ci(而非npm install),以遵守lockfile规范。

不会。您的选择仅用于生成配置,不会被存储,也不会与第三方共享。

相关工具

此工具还提供其他语言版本