在VSCode中配置ESLint规则的几种不同方法
最推荐在项目根目录下配置.eslintrc.js文件,VSCode ESLint插件自动识别并实时校验;其次可用package.json的eslintConfig字段;工作区settings.json仅用于调整运行时机等行为,不支持直接写规则;全局配置不推荐。
在 VSCode 中配置 ESLint 规则,核心是让编辑器识别并应用 ESLint 的校验逻辑。方法不止一种,关键看你是想全局统一、项目级定制,还是临时覆盖。下面几种常用方式,按实际使用频率和推荐程度排列:
1. 项目根目录下配置 .eslintrc.* 文件(最推荐)
这是 ESLint 官方标准做法,VSCode 的 ESLint 插件会自动读取。支持多种格式:.eslintrc.js、.eslintrc.json、.eslintrc.yml,推荐用 .eslintrc.js,便于写注释、复用配置、动态判断环境。
- 确保项目已安装
eslint(本地优先):运行npm install eslint --save-dev - 初始化配置:
npx eslint --init,按向导生成基础文件 - 在
.eslintrc.js中指定规则,例如:rules: { 'no-console': 'warn', 'eqeqeq': 'error' } - VSCode 无需额外设置,只要装了官方 ESLint 扩展(ESLint by Dirk Baeumer),保存文件就会实时标红/提示
2. 在 package.json 中声明 eslintConfig 字段(适合轻量项目)
不想多加配置文件时可用。ESLint 会自动查找 package.json 里的 eslintConfig 对象,效果等同于 .eslintrc.json。
- 直接在
package.json的顶层添加:"eslintConfig": { "extends": "eslint:recommended", "rules": { "no-unused-vars": "off" } } - 注意 JSON 格式限制:不支持注释、变量、函数,灵活性不如 JS 文件
- VSCode 同样自动识别,无需插件额外配置
3. 使用 VSCode 工作区设置(settings.json) 指定规则或开关
适用于临时调整、团队协作中避免提交个人配置,或需要为某个工作区单独启用/禁用某些行为。
- 打开命令面板(
Ctrl+Shift+P
/ Cmd+Shift+P),输入Preferences: Open Workspace Settings (JSON) - 添加 ESLint 相关配置,例如:
"eslint.enable": true,
"eslint.run": "onType",
"eslint.options": { "configFile": "./.eslintrc.js" } -
"eslint.rules.custom"并不存在——VSCode 不支持直接在这里写规则,规则仍需定义在.eslintrc.*或package.json中 - 常见用途:切换
onSave或onType、指定 Node 路径、禁用特定文件夹的检查
4. 全局配置(不推荐,仅作了解)
通过用户级 settings.json 设置 eslint.packageManager 或 eslint.nodePath,但不建议把规则写在全局。
- 全局规则难维护、易冲突,不同项目可能依赖不同版本或规则集
- 唯一合理场景:统一指定 ESLint 可执行路径(比如用 pnpm 管理全局工具),或启用/禁用插件本身
- 路径示例(用户 settings.json):
"eslint.nodePath": "/Users/xxx/.pnpm/store/v3/node_modules"
基本上就这些。优先用项目级 .eslintrc.js,配合 VSCode ESLint 插件,开箱即用;需要快速试配可走 package.json;调试或隔离环境时再动 workspace settings。规则本身写在哪不重要,关键是让 ESLint CLI 和编辑器看到同一份配置。

/