ESLint
GoLand 集成了 ESLint ,该工具提供了大量可通过插件扩展的 Lint 规则。 GoLand 会在编辑器中实时显示由 ESLint 报告的警告和错误。 通过 ESLint,您还可以使用 JavaScript Standard Style ,以及 对 TypeScript 代码执行 lint 检查。
除了 JavaScript 和 TypeScript 外,ESLint 也可应用于整个项目或其特定部分中的其他类型文件,请参阅 配置 Lint 范围。
开始之前
下载并安装 Node.js。
如 配置本地 Node.js 解释器、 在 Windows 子系统 Linux 上使用 Node.js 或 配置远程 Node.js 解释器 中所述,在项目中配置 Node.js 解释器。
安装 ESLint
在集成的 终端 (Alt+F12 )中,键入以下命令之一:
npm init @eslint/config@latest在当前项目中安装 ESLint 并生成配置文件。按照向导提示回答问题。 完成后,GoLand 会安装最新版本的 ESLint 并生成一个 eslint.config.js 配置文件。
npm install --save-dev eslint以开发依赖的方式安装 ESLint。npm install --g eslint全局安装。
pnpm create @eslint/config@latest在当前项目中安装 ESLint 并生成配置文件。按照向导提示回答问题。 完成后,GoLand 会安装最新版本的 ESLint 并生成一个 eslint.config.js 配置文件。
pnpm add -D eslint以开发依赖的方式安装 ESLint。pnpm add -g eslint全局安装。
yarn create @eslint/config在当前项目中安装 ESLint 并生成配置文件。按照向导提示回答问题。 完成后,GoLand 会安装最新版本的 ESLint 并生成一个 eslint.config.js 配置文件。
yarn add -D eslint以开发依赖的方式安装 ESLint。yarn add eslint进行全局安装。
您可以选择安装其他插件,例如 eslint-plugin-react 来对 React 应用进行代码检查。
详细信息请参见 ESLint 官方网站。
配置文件
配置文件支持的格式
根据您使用的 ESLint 版本,GoLand 支持以下类型的配置文件:
ESLint 版本 9 及更高版本
eslint.config.js 、 eslint.config.mjs 或 eslint.config.cjs (flat 格式),详细信息请参见 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 官方网站。
如何迁移到 flat 格式,请参见 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 官方网站。
在 GoLand 中配置 ESLint
默认情况下,ESLint 会被 自动配置。 您可以选择 手动配置所有设置,或禁用 ESLint。
自动配置 ESLint
使用自动配置时,GoLand 会使用项目 node_modules 文件夹中的 ESLint 包,以及当前文件所在文件夹中的 配置文件。 如果当前文件所在文件夹中未找到 配置文件,GoLand 会在其父文件夹中一直向上查找,直到项目根目录。
如果有多个包含 ESLint 依赖项的 package.json 文件,GoLand 会为每个 package.json 启动一个独立进程,并处理其下的所有内容。 这使您可以在 monorepo 或包含多个 ESLint 配置的项目中,为每个路径应用特定的 ESLint 版本或插件集。
要在当前项目中自动配置 ESLint,请打开 设置 对话框(Ctrl+Alt+S ),转到 ,然后选择 自动 ESLint 配置 选项。
要在所有新项目中自动配置 ESLint,请打开 新项目设置 对话框( ),转到 ,然后选择 自动 ESLint 配置 选项。
手动配置 ESLint
使用手动配置,您可以使用自定义的 ESLint 包、配置文件和工作目录,并应用各种其他规则和选项。
在 设置 对话框(Ctrl+Alt+S )中,转到 ,然后选择 手动 ESLint 配置。
在 ESLint 包 字段中,指定 eslint 或 standard 包的位置。
在 工作目录 字段中,指定 ESLint 进程的工作目录。
默认情况下该字段为空,GoLand 会自动检测工作目录。 首先,它会查找距离被 Lint 的文件最近、且包含一个 配置文件 的目录。
如果自动检测的工作目录与项目配置不符,则需要手动指定工作目录。 使用分号作为分隔符。 可接受的值包括:
绝对路径。
相对于项目基础目录的路径(即存储 GoLand 项目元数据的 .idea 文件夹的父文件夹)。 例如:
./:使用项目基础目录作为 ESLint 进程的工作目录。client;server:使用 <project_base_dir>/client 和 <project_base_dir>/server 作为工作目录。 对于不位于 client 和 server 文件夹下的文件,将按上述方式 自动检测工作目录。packages/*: <project_base_dir>/packages 目录的每个子文件夹将作为相应被检查文件的工作目录。
如果某些被检查文件在文件夹层级结构中不属于项目基础目录,则可以使用相对于内容根目录的路径。
Glob 模式 ,用于定义到工作目录的相对路径。 例如,使用
**/foo -*时,每个名称以foo-开头的目录都将作为相应被检查文件的工作目录。
选择要使用的配置。
自动搜索 :如果 ESLint 规则已在受支持格式的 配置文件 中进行配置,请选择此选项。
GoLand 将从要检查的文件所在文件夹开始查找该文件,然后在其父文件夹中继续查找,直到项目根目录。
配置文件 - 选择此选项以使用自定义文件,并在 路径 字段中指定文件位置。
在 ESLint 官方网站了解关于配置 ESLint 的更多信息。
可选:
在 额外eslint 选项 (O) 字段中,指定运行 ESLint 时使用的其他命令行选项,各项之间用空格分隔。 例如,要使用以 TypeScript 编写的 配置文件 ,请输入
--flag unstable_ts_config。在 ESLint 官方网站中了解有关 ESLint CLI 选项的更多信息。
在 其他规则目录 字段中,指定包含附加代码验证规则的文件位置。 这些规则将在默认配置文件或自定义配置文件中的规则之后应用,并相应地覆盖后者。
请参阅 ESLint 官方网站,了解有关 ESLint 配置文件 和 添加规则 的更多信息。
配置 Lint 范围
打开 设置 对话框(Ctrl+Alt+S ),转到 ,然后选择 自动 ESLint 配置 或 手动 ESLint 配置。
在 为文件运行 字段中,指定定义要进行检测的文件集合的模式。 您可以接受默认模式,也可以输入自定义模式。
使用默认模式
**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts,html,vue}时,ESLint 会唤醒并处理任何已更新的 JavaScript、TypeScript、JSX、TSX、HTML 或 Vue 文件。 要检测其他类型的文件或存储在特定文件夹中的文件,请使用 glob 模式 更新默认模式。例如,为了自动检测 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 保存更改时,或在启动运行/调试配置、关闭 GoLand 或执行版本控制操作时自动保存时,修复检测到的问题。有关更多信息,请参阅 自动保存。
打开 设置 对话框(Ctrl+Alt+S ),转到 ,并选中 在保存时运行 eslint --fix 复选框。
Lint 您的代码
安装并启用后,每次打开 JavaScript 文件时 ESLint 会自动激活。 您还可以配置 ESLint,以便 在保存时自动检测和修复问题。
默认情况下,GoLand 会根据 ESLint 配置中的严重性级别标记检测到的问题。 请参阅 配置 ESLint 高亮显示 ,了解如何覆盖这些设置。
当前文件中检测到错误的说明及其快速修复可在编辑器以及 文件 标签页中的 问题 工具窗口中查看。
所有之前打开的文件中的错误以及其快速修复会显示在 项目错误 标签页中的 问题 工具窗口中。 要打开工具窗口,请单击编辑器右上角的 检查 小组件:

在编辑器中查看问题并应用快速修复
要查看问题描述,将鼠标悬停在高亮代码上。

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

您还可以配置 ESLint,在保存文件时修复文件中的所有问题。 要配置此行为,请在 ESLint 页的 设置 对话框中选中 在保存时运行 eslint --fix 复选框,如 在 GoLand 中激活并配置 ESLint 中所述。
在“问题”工具窗口中 Lint 您的代码
要打开 问题 工具窗口,请单击编辑器右上角的 检查 小组件。

或者,从主菜单中选择 ,或按 Alt+6。
在 文件 标签页中查看问题描述、应用快速修复、导航至源代码中出错的片段,并可以在 编辑器预览 面板中直接进行修复,无需离开工具窗口。 详细了解请参阅 问题工具窗口。

在 项目错误 标签页中可查看当前会话期间打开的所有文件中的错误,错误信息按检测到错误的文件进行分组显示。

在此,您可以查看问题描述、应用快速修复、导航到源代码中出错的片段,并在 编辑器预览 窗格中修复它们,无需离开工具窗口。 了解详细信息,请参见 Problems 工具窗口。
配置 ESLint 的高亮显示方式
默认情况下,GoLand 会根据 ESLint 配置中的严重性级别标记检测到的错误与警告。 例如,错误以下划红线标示,而警告则以黄色背景突出显示。
更改 ESLint 配置中规则的严重级别
在 配置文件 中,找到要编辑的规则,并将其值设置为
1warn或2error。详细内容请参考 ESLint 官方网站。
忽略配置中的严重级别
您可以覆盖 ESLint 配置中的严重性级别,使 GoLand 忽略这些级别,并将 linter 报告的所有内容分别显示为错误、警告或自定义颜色。

忽略配置中的严重级别
在 设置 对话框(Ctrl+Alt+S )中,选择 。 将打开 Inspections 页面。
在中央窗格中,转到 JavaScript | 代码质量工具 | ESLint。
在右侧窗格中,取消选中 使用配置文件中的规则严重性 复选框,并选择要替代默认级别的严重性级别。
从 ESLint 导入代码风格
您可以将部分 ESLint 代码风格规则 导入到 GoLand 的 JavaScript 代码风格设置 中。 这使得 GoLand 在补全、生成、重构代码或添加 import 语句时,能够为项目使用更精确的代码风格选项。 使用 重新格式化 操作后,从 ESLint 角度来看,GoLand 将不再破坏格式正确的代码。
GoLand 支持所有官方格式的 ESLint 配置,另请参阅上文中的 ESLint 配置文件支持的格式:
eslint.config.js 、 eslint.config.mjs 、 eslint.config.cjs 、 eslint.config.ts 、 eslint.config.mts 或 eslint.config.cts (flat 格式),适用于 ESLint 9 及更高版本。
.eslintrc 文件以及带有
eslintConfig属性的 package.json 文件,适用于 ESLint 8 及更早版本。
详细信息请参见 ESLint 官方网站。
首次打开项目时,GoLand 会自动从项目的 ESLint 配置中导入代码风格设置。
如果 ESLint 配置已更新(无论是手动更新还是通过版本控制),请在编辑器中打开该文件,然后从上下文菜单中选择 应用 ESLint 代码样式规则。

或者,直接在文件顶部的问题提示中选择 是 回答 “是否应用 ESLint 的代码样式?”。
应用的规则列表显示在 通知 工具窗口中:

使用 JavaScript Standard Style
您可以将 JavaScript Standard Style 设置为应用程序的默认 JavaScript 代码风格,以便在编写或重新格式化代码时应用其主要规则。 由于 Standard 是基于 ESLint 的,您也可以通过 GoLand 的 ESLint 集成功能使用 Standard。
安装 JavaScript Standard
在嵌入式 终端 (Alt+F12 )中,键入:
npm install standard --save-dev详细信息请参见 JavaScript Standard Style 官方网站。
通过 ESLint 启用 Standard 风格的 Lint
如果打开的项目在其 package.json 文件中列出了 standard ,GoLand 会自动启用 Standard 进行 lint 检查。
在 设置 对话框(Ctrl+Alt+S )中,转到 。
在打开的 ESLint 页面上,选择 手动 ESLint 配置 并在 ESLint 包 字段中指定
standard包的位置。
将 JavaScript Standard Style 设置为默认风格
在 设置 对话框(Ctrl+Alt+S )中,转到 。
在 JavaScript 页面中,点击 设置来源 ,然后选择 JavaScript 标准样式。 该风格将替代您当前的方案。
结合 Docker 使用 ESLint
使用 GoLand,您可以像在本地一样在 Docker 容器中运行 ESLint 对代码进行检查。
请按照 从 JetBrains Marketplace 安装插件 中的说明,在 设置 | 插件 页签 Marketplace 上安装 Node.js 与 Node.js Remote Interpreter 插件。
请按照 Docker 主题中的说明下载、安装并配置 Docker。
打开 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 的工作方式与本地代码一样。 可直接在编辑器或 问题 工具窗口中查看所检测差异的说明,并应用所建议的快速修复。