ESLint
PyCharm 与 ESLint 集成,提供了广泛的检查规则,还可通过插件进行扩展。 PyCharm 会在您输入时,直接在编辑器中显示 ESLint 报告的警告和错误。 借助 ESLint,您还可以使用 JavaScript Standard Style ,以及 检查您的 TypeScript 代码。
除了 JavaScript 和 TypeScript 之外, ESLint 还可以应用于整个项目或其特定部分中的其他类型文件,请参阅 配置代码检查范围。
开始之前
请确保您的计算机上已安装 Node.js。
按照 配置本地 Node.js 解释器、 在 Windows Subsystem for Linux 上使用 Node.js 或 配置远程 Node.js 运行时中的说明,在您的项目中配置 Node.js 运行时。
安装 ESLint
在内置 终端 (Alt+F12 )中,输入以下任一命令:
npm init @eslint/config@latest:在当前项目中安装 ESLint 并生成一个配置文件。回答向导中的问题。 结果,PyCharm 会安装最新版本的 ESLint,并生成一个 eslint.config.js 配置文件。
npm install --save-dev eslint:将 ESLint 作为开发依赖项进行安装。npm install --g eslint:用于全局安装。
pnpm create @eslint/config@latest:在当前项目中安装 ESLint 并生成一个配置文件。回答向导中的问题。 结果,PyCharm 会安装最新版本的 ESLint,并生成一个 eslint.config.js 配置文件。
pnpm add -D eslint:将 ESLint 作为开发依赖项进行安装。pnpm add -g eslint:用于全局安装。
yarn create @eslint/config:在当前项目中安装 ESLint 并生成一个配置文件。回答向导中的问题。 结果,PyCharm 会安装最新版本的 ESLint,并生成一个 eslint.config.js 配置文件。
yarn add -D eslint:将 ESLint 作为开发依赖项进行安装。yarn add eslint:用于全局安装。
可选:安装其他插件,例如 eslint-plugin-react ,用于检查 React 应用程序。
了解详情请参阅 ESLint 官方网站。
配置文件
支持的配置文件格式
根据您使用的 ESLint 版本,PyCharm 能够识别以下文件类型中的配置:
ESLint 9 及更高版本
eslint.config.js 、 eslint.config.mjs 或 eslint.config.cjs (扁平格式),详情请参阅 ESLint 官方网站。
您还可以使用用 TypeScript 编写的配置文件,例如 eslint.config.ts 、 eslint.config.mts 或 eslint.config.cts 。 为此,您需要指定 unstable_ts_config 标志。
按 Ctrl+Alt+S 打开设置,然后选择 。
选择 手动配置 ESLint。
在 额外的 ESLint 选项 字段中,输入
--flag unstable_ts_config。点击 应用 以保存更改并关闭对话框。
ESLint 8 及更早版本
.eslintrc.* ( .eslintrc 、 .eslintrc.json 或 .eslintrc.yaml 文件,或其他受支持格式的文件)。
.eslintignore
package.json ,其中包含
eslintIgnore或eslintConfig属性。 此配置系统已弃用,详情请参阅 ESLint 官方网站。
要了解如何切换到扁平格式,请参阅 ESLint 配置迁移指南。
创建并编辑配置文件
在项目根目录中打开一个配置文件,或创建一个新文件。 根据您使用的 ESLint 版本填写该配置文件:
// @ts-check import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; export default tseslint.config( eslint.configs.recommended, tseslint.configs.recommended, );了解详情请参阅 ESLint 官方网站。
/* eslint-env node */ module.exports = { extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], root: true, };了解详情请参阅 ESLint 官方网站。
在 PyCharm 中配置 ESLint
默认情况下,ESLint 是 自动配置的。 您可以选择 手动指定所有配置设置,或禁用 ESLint。
自动配置 ESLint
在自动配置下,PyCharm 使用项目 node_modules 文件夹中的 ESLint 包,以及当前文件所在文件夹中的 配置文件。 如果在当前文件所在的文件夹中未找到 配置文件,PyCharm 将在其父文件夹中逐级查找,直到项目根目录。
如果您有多个 package.json 文件将 ESLint 列为依赖项,PyCharm 会为每个 package.json 启动单独的进程,并处理其下的所有内容。 这样,您就可以在单一代码库或具有多个 ESLint 配置的项目中,对每个路径应用特定的 ESLint 版本或特定的一组插件。
要在当前项目中自动配置 ESLint,请打开 设置 对话框(Ctrl+Alt+S ),转到 ,然后选择 自动配置 ESLint 选项。
要在所有新项目中自动配置 ESLint,请打开 新建项目的设置 对话框( ),转到 ,然后选择 自动配置 ESLint 选项。
手动配置 ESLint
通过手动配置,您可以使用自定义的 ESLint 包、配置文件和工作目录,并应用各种附加规则和选项。
在 设置 对话框(Ctrl+Alt+S )中,转到 ,并选择 手动配置 ESLint。
在 ESLint 包 字段中,指定 eslint 或 standard 包的位置。
在 工作目录 字段中,指定 ESLint 进程的工作目录。
默认情况下,该字段为空,PyCharm 会自动检测工作目录。 首先,它会查找最接近被检查文件且包含 配置文件 的目录。
如果自动检测到的工作目录与您的项目配置不匹配,您需要手动指定工作目录(可为多个)。 使用分号作为分隔符。 可接受的值为:
绝对路径。
相对于项目基目录的路径(存储 PyCharm 特定项目元数据的 .idea 文件夹的父文件夹)。 例如:
./:将项目基目录用作 ESLint 进程的工作目录。client;server:将 <project_base_dir>/client 和 <project_base_dir>/server 用作工作目录。 对于既不在 client 文件夹下、也不在 server 文件夹下的文件,工作目录将会被 按照上述方式自动检测。packages/*: <project_base_dir>/packages 目录的每个子文件夹都将用作相应被检查文件的工作目录。
如果某些被检查文件在文件夹层级中不位于项目基目录下,则可以使用相对于内容根的路径。
Glob patterns ,用于定义到工作目录的相对路径。 例如,使用
**/foo -*时,每个名称以foo-开头的目录都将用作相应被检查文件的工作目录。
选择要使用的配置。
自动搜索 :如果在受支持格式的 配置文件 中配置了 ESLint 规则,请选择此选项。
PyCharm 会从要检查的文件所在的文件夹开始查找此类文件,然后在其父文件夹中查找,依次向上,直到到达项目根目录。
配置文件 - 选择此选项以使用自定义文件,并在 路径 字段中指定文件位置。
了解有关配置 ESLint 的更多信息,请参阅 ESLint 官方网站。
可选:
在 额外eslint 选项 (O) 字段中,指定运行 ESLint 时使用的其他命令行选项,使用空格作为分隔符。 例如,要使用 用 TypeScript 编写的配置文件 ,请输入
--flag unstable_ts_config。了解有关 ESLint CLI 选项的更多信息,请参阅 ESLint 官方网站。
在 附加规则目录 字段中,指定附加代码验证规则文件的位置。 这些规则将应用在默认配置文件或自定义配置文件的规则之后,并据此覆盖它们。
有关 ESLint 配置文件 和 添加规则 的更多信息,请参阅 ESLint 官方网站。
配置代码检查范围
打开 设置 对话框(Ctrl+Alt+S ),转到 ,然后选择 自动配置 ESLint 或 手动配置 ESLint。
在 对文件运行 字段中,指定定义要检查的文件集的模式。 您可以接受默认模式,或输入自定义模式。
使用默认模式
**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts,html,vue},ESLint 将在 JavaScript、TypeScript、JSX、TSX、HTML 或 Vue 文件更新时唤醒并进行处理。 要检查其他类型的文件或存储在特定文件夹中的文件,请使用 glob patterns 更新默认模式。例如,要同时自动检查 CoffeeScript 文件,请将
coffee添加到默认模式中,如下所示:**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts,html,vue,coffee}要检查特定文件夹(包括其子文件夹)中的文件,请将
**/*替换为<path to the folder>/**/*。假设您的项目具有以下结构:

若仅检查 coffee 文件夹中的文件,请按如下方式更新模式:
coffee/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts,html,vue,coffee}结果,文件 linting.coffee 会被检查,而 no_linting .coffee 不会。
在保存时自动修复问题
每当保存您的更改时,ESLint 都可以修复检测到的问题:可以通过 Ctrl+S 手动保存,或在启动运行/调试配置、关闭 PyCharm 或执行版本控制操作时自动保存。有关更多信息,请参阅 Autosave。
打开 设置 对话框(Ctrl+Alt+S ),转到 ,并选中 在保存时运行 eslint --fix 复选框。
检查您的代码
安装并启用后,每次打开 JavaScript 文件时,ESLint 都会自动激活。 您还可以将 ESLint 配置为 在保存时自动检测并修复问题。
默认情况下,PyCharm 会根据 ESLint 配置中的严重性级别标记检测到的问题。 有关如何覆盖这些设置,请参阅 Configuring ESLint highlighting。
当前文件中检测到的错误的说明及其快速修复可在编辑器以及 Problems 工具窗口的 文件 选项卡中获取。
所有先前打开的文件中的错误及其快速修复会显示在 问题 工具窗口的 项目错误 选项卡中。 要打开该工具窗口,请点击编辑器右上角的 检查 小部件:

有关更多信息,请参阅 View problems and apply quick-fixes in the editor 和 Problems tool window。
在编辑器中查看问题并应用快速修复
要查看问题的描述,请将鼠标悬停在高亮代码上。

要解决检测到的问题,点击 ESLint:修复 '<rule name>' 或按 Alt+Shift+Enter。
要解决当前文件中检测到的所有问题,点击 更多操作 (Alt+Enter ),然后从列表中选择 。

有关更多信息,请参阅 View problems and apply quick-fixes in the editor。
您还可以配置 ESLint,在保存该文件时修复该文件中的所有问题。 要配置此行为,请在 设置 对话框的 ESLint 页面上选中 在保存时运行 eslint --fix 复选框,如 Activating and configuring ESLint in PyCharm 中所述。
在问题工具窗口中检查您的代码
要打开 问题 工具窗口,请点击编辑器右上角的 检查 小部件。

或者,从主菜单中选择 ,或按 Alt+6。
在 文件 选项卡中,查看问题说明,应用快速修复,导航到源代码中发生错误的片段,并且可在不离开工具窗口的情况下在 编辑器预览 窗格中修复它们。 了解更多请参阅 Problems tool window。

在 项目错误 选项卡中,查看当前会话期间打开的所有文件中的错误,错误消息按检测到它们的文件进行分组。

在此,您可以查看问题说明,应用快速修复,导航到源代码中发生错误的片段,并且可在不离开工具窗口的情况下在 编辑器预览 窗格中修复它们。 了解更多请参阅 Problems tool window。
配置 ESLint 的高亮显示
默认情况下,PyCharm 会根据 ESLint 配置中的严重性级别标记检测到的错误和警告。 例如,错误以下划红波浪线高亮显示,警告以黄色背景标记。 有关更多信息,请参阅 代码检查 和 更改检查严重性。
在 ESLint 配置中更改规则的严重性级别
在 配置文件 中,找到要编辑的规则,并将其值设置为
1warn或2error。了解更多请参阅 ESLint 官方网站。
忽略配置中的严重性级别
您可以覆盖 ESLint 配置中的严重性级别,使 PyCharm 忽略它们,并将代码检查器报告的所有内容显示为错误、警告或使用自定义颜色。

忽略配置中的严重性级别
在 设置 对话框(Ctrl+Alt+S )中,选择 。 Inspections page 打开。
在中央窗格中,转到 JavaScript | 代码质量工具 | ESLint。
在右侧窗格中,清除 使用配置文件中的规则严重性 复选框,并选择要替代默认级别的严重性级别。
从 ESLint 导入代码样式
您可以将部分 ESLint 代码样式规则 导入到 PyCharm JavaScript 代码样式设置。 这使 PyCharm 能够在自动完成、生成或重构代码或添加导入语句时,为您的项目使用更准确的代码样式选项。 当您使用 重新格式化 操作时,PyCharm 将不再破坏从 ESLint 角度看格式正确的代码。
PyCharm 支持所有官方格式的 ESLint 配置,另请参见上文的 Supported formats of ESLint configuration files:
eslint.config.js 、 eslint.config.mjs 、 eslint.config.cjs 、 eslint.config.ts 、 eslint.config.mts ,或 eslint.config.cts (扁平格式),适用于 ESLint 9 及更高版本。
.eslintrc 文件和带有
eslintConfig属性的 package.json 文件,适用于 ESLint 8 及更早版本。
了解更多请参阅 ESLint 官方网站。
当您首次打开项目时,PyCharm 会自动从项目的 ESLint 配置中导入代码样式。
如果您的 ESLint 配置已更新(手动或通过版本控制),请在编辑器中将其打开,并从上下文菜单中选择 应用 ESLint 代码样式规则。

或者,只需对文件顶部的 "是否从 ESLint 应用代码样式?" 问题回答 是。
已应用的规则列表显示在 通知 工具窗口中:

使用 JavaScript Standard Style
您可以将 JavaScript Standard Style 设为应用程序的默认 JavaScript 代码样式,这样在输入代码或重新格式化代码时将应用其主要规则。 由于 Standard 基于 ESLint,您也可以通过 PyCharm 的 ESLint 集成来使用 Standard。
安装 JavaScript Standard
在内置 终端 (Alt+F12 )中,输入:
npm install standard --save-dev了解更多请参阅 JavaScript Standard Style 官方网站。
通过 ESLint 启用 Standard 进行检查
如果您打开的项目在其 package.json 文件中列出了 standard ,PyCharm 会自动启用 Standard 检查。
在 设置 对话框(Ctrl+Alt+S )中,转到 。
在打开的 ESLint 页面上,选择 手动配置 ESLint ,并在 ESLint 包 字段中指定
standard包的位置。
将 JavaScript Standard Style 设为默认
在 设置 对话框(Ctrl+Alt+S )中,转到 。
在 JavaScript 页面上,点击 设置来源 ,然后选择 JavaScript 标准风格。 该样式将替换您当前的方案。
ESLint 与 Docker
借助 PyCharm,您可以在 Docker 容器中对代码运行 ESLint,其方式与在本地运行相同。
了解更多请参阅 在 Docker 中使用 Node.js。
按照 从 JetBrains Marketplace 安装插件中的说明,在 设置 | 插件 页面、 Marketplace 选项卡上安装 Node.js 和 Node.js Remote Interpreter 插件。
请确保在设置中启用了 Docker 插件。 按 Ctrl+Alt+S 打开设置,然后选择 。 点击 已安装 选项卡。 在搜索字段中,键入 Docker。 有关插件的更多信息,请参阅 管理插件。
按照 Docker 主题中的说明,下载、安装并配置 Docker。
在 Docker 中配置远程 Node.js 运行时 或通过 Docker Compose ,并在您的项目中 将其设为默认。 还请确保与此远程运行时关联的包管理器已 设置为项目默认。
打开您的 package.json ,并确保在
devDependencies部分列出了 ESLint:{ "name": "node-eslint", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1", "pug": "2.0.0-beta11" }, "devDependencies": { "@eslint/js": "^9.15.0", "eslint": "^9.15.0", "globals": "^15.12.0" } }在编辑器的任意位置右键点击,并从上下文菜单中选择 运行 '<package manager> install'。
之后,ESLint 的工作方式与您在本地处理代码时相同。 在编辑器或 问题 工具窗口中直接查看检测到的问题说明,并应用建议的快速修复。
