必须启用eslint.validate才能实时标红js错误,vscode默认仅检查typescript,需在settings.json中显式配置"eslint.validate": ["javascript", "javascriptreact"],否则.js文件不会被校验。

ESLint 必须启用 eslint.validate 才能实时标红 JS 错误
很多人装了 ESLint 插件但没看到语法报错,根本原因是没配置 eslint.validate。VSCode 默认只对 TypeScript 启用 ESLint 检查,JS 文件需要显式声明。
在 settings.json 中必须加上:
{
"eslint.validate": ["javascript", "javascriptreact"]
}
- 漏掉
"javascript"就不会检查.js文件,哪怕你写的是纯 JS 项目 -
"javascriptreact"是给.jsx或 React 项目用的,非 React 项目可删 - 如果项目里用了
create-react-app或 Vite + React,建议保留两者
Prettier 和 ESLint 冲突时,prettier 要加进 extends 而不是只靠格式化开关
只开 "editor.formatOnSave": true 并指定默认 formatter,解决不了规则打架问题——比如 ESLint 要求单引号、Prettier 默认双引号,保存后会来回“拉锯”。
真正稳定的解法是让 ESLint 主动让步:
- 在
.eslintrc.js的extends数组里加'prettier' - 确保已安装
eslint-config-prettier(不是prettier本体) - 不要在
rules里手动关掉和格式相关的规则,比如quotes、semi,交给eslint-config-prettier统一禁用
JS 自动补全依赖 jsconfig.json,空项目必须手动建
VSCode 对 JS 的路径跳转、模块导入提示,默认只认 node_modules 和相对路径。一旦用了别名(如 @/components),不配 jsconfig.json 就完全没提示。
最简可用配置:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"utils/*": ["src/utils/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
-
baseUrl是路径解析的根,必须设,不能留空 -
paths里的键必须带通配符*,值也要对应带*,否则补全失效 - 没有
jsconfig.json,Path Intellisense插件也补不出@/xxx这类路径
智能提示卡顿?关掉 typescript.preferences.includePackageJsonAutoImports
某些 JS 项目(尤其含大量 node_modules 的老项目)开启自动导入后,VSCode 会在后台扫描整个 node_modules 提取类型,导致 CPU 占用飙升、补全延迟明显。
这不是插件问题,是 VSCode 内置 TS 服务的行为。临时缓解方法:
- 在设置里搜
includePackageJsonAutoImports,设为off - 或直接在
settings.json加:"typescript.preferences.includePackageJsonAutoImports": "off" - 这个选项只影响自动导入建议,不影响已有代码的跳转和类型提示
别名路径、JSDoc 注释、ESLint 规则这些都得手动配,没有一键全开的“最强设置”。配错一个字段,补全就断,标红就失灵——重点不在装多少插件,而在每个配置项是否精准匹配当前项目结构。











