跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

VSCode ESLint配置指南:启用代码检查与自动修复格式错误

VSCode中ESLint插件无波浪线、不自动修复,主因是配置未连通:插件默认调用全局ESLint而非项目本地版本,需确认package.json存在且已npm install,设置eslint.packageManager为对应包管理器,并使用.eslintrc.js(module.exports导出)、正确配置eslint.validate和editor.codeActionsOnSave。 VSCode 里 ESLint 插件装了但没波浪线、保存也不修代码?问题几乎都出在「配置没连通」——不是插件坏了,而是它根本没找到项目里的
eslint
包,或压根没读到有效的规则配置。 为什么 ESLint 在 VSCode 里完全不报错 最常见原因是:VSCode 默认尝试用全局
eslint
,而你的项目用的是本地
node_modules/.bin/eslint
。插件启动时找不到可执行文件,就静默退出,连错误都不报。 检查右下角状态栏,点 ESLint 图标——如果显示
Using globally installed ESLint
,说明没走本地 确认项目根目录有
package.json
,且已运行过
npm install
(或
pnpm install
) 在终端执行
npx eslint --version
,能正常输出版本号才算本地安装成功 设置
eslint.packageManager
为
"npm"
或
"pnpm"
(和你项目一致),否则插件可能找不到
node_modules
配置文件不生效的三个关键点
.eslintrc.js
放对位置 ≠ 被正确加载。VSCode 插件只认它明确支持的格式,并严格按路径查找逻辑工作。 优先用
.eslintrc.js
或
.eslintrc.cjs
,避免
eslint.config.js
(除非插件版本 ≥ v2.4.10 且显式配
eslint.options.configFile
)
.eslintrc.js
必须用
module.exports = {...}
,写
export default
会直接加载失败 TS/JSX 文件不校验?大概率是
parser
没配:
@typescript-eslint/parser
(TS)或
babel-eslint
(旧 JSX),且
eslint.validate
里必须包含
"typescriptreact"
或
"vue"
保存时自动修复(fix on save)怎么配才不翻车 别用已废弃的
eslint.autoFixOnSave
,它和 Prettier 冲突时会删代码。新版只认
editor.codeActionsOnSave
,且必须精确指定作用域。 VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载 只让 ESLint 修自己的规则:
"source.fixAll.eslint": true
;别写
"source.fixAll": true
(会调所有 linter,包括 Prettier,大概率报错) 确保
editor.formatOnSave
是
false
,否则 ESLint 和 Prettier 双格式化器打架 可修复规则有限——
semi
、
quotes
、
indent
行,但
no-console
只删
console.log
,
react-hooks/exhaustive-deps
完全不修 想批量修复整个项目?终端跑
npx eslint --fix .
,比狂按 Ctrl+S 稳定得多 多语言/多包项目(monorepo)的坑 单个
settings.json
配置搞不定子包各自规则,插件默认只查打开文件所在目录的上层,不会跨包扫描。 设
eslint.workingDirectories
为
[{ "mode": "auto" }]
,让插件自动探测各子包下的
.eslintrc.*
Vue/TSX 文件飘红但无提示?检查
eslint.validate
是否漏掉
"vue"
或
"typescriptreact"
——它不识别
"*.vue"
这种 glob 写法 状态栏 ESLint 图标变灰?重启 VSCode 或手动
Developer: Reload Window
,插件有时缓存旧路径 真正卡住人的从来不是某条规则怎么写,而是插件根本没启动起来——先让
npx eslint .
在终端跑通,再调 VSCode 设置,顺序错了,后面全白搭。

相关文章