vscode 默认不提供语义级代码纠错,需依赖 eslint、htmlhint 等外部工具链;eslint 插件无配置文件(如 .eslintrc.js 或 eslint.config.mjs)则不生效;html 语义检查(如 alt 缺失)需正确配置 htmlhint,且规则须显式启用。

VSCode 本身不自带“高质量代码纠错”能力,所有语义级检查(比如未使用变量、错误的 Promise 链、console.log 漏删)都依赖外部工具链;只开编辑器默认校验,连 if (x = 1) 这种赋值误写都报不出来。
为什么装了 ESLint 插件却没标红?
ESLint 插件只是个“翻译官”,它需要项目里真实存在的 .eslintrc.js 或 eslint.config.mjs 才能干活。没有配置文件,插件默认不启用任何规则——你看到的“无报错”,其实是“没在检查”。
- 检查项目根目录是否存在
.eslintrc.js、.eslintrc.json或eslint.config.mjs;不存在就运行npx eslint --init生成一个 - 确保 VS Code 当前打开的是**整个项目文件夹**(File → Open Folder),而不是单个文件;否则插件找不到配置文件
- 右下角状态栏点击
ESLint图标,如果显示 “ESLint is disabled” 或 “No ESLint configuration found”,说明配置未加载 - 终端执行
npx eslint . --ext .js,.jsx能跑通,但 VS Code 不报错?大概率是eslint.useFlatConfig设置不匹配:旧版配置用false,新版 Flat Config 必须设为true
editor.formatOnSave 和 eslint.autoFixOnSave 到底谁该开?
两个都开,大概率互相覆盖、保存后代码来回跳动。核心原则:格式化归 Prettier,逻辑修复归 ESLint,二者不能抢同一块地盘。
- 关掉
editor.formatOnSave,避免 VS Code 内置格式器或 Prettier 插件在 ESLint 修复前乱动代码 - 只开
eslint.autoFixOnSave,它只修fixable类规则(如引号、空格、分号),不动结构 - 把 Prettier 设为默认格式器:
"editor.defaultFormatter": "esbenp.prettier-vscode",再手动按Shift+Alt+F格式化(或绑定到保存后钩子,但需配合eslint-config-prettier) - 若坚持保存即格式,必须在 ESLint 配置中加入
"prettier"到extends,并安装eslint-config-prettier—— 否则semi和quotes规则会跟 Prettier 对着干
HTML 文件里 alt 缺失、标签没闭合,为什么没提示?
VS Code 内置 HTML 校验器只管语法合法(比如嵌套是否正确),不管语义规范(比如 <img> 是否带 alt)。这类检查必须靠 HTMLHint,但它极度娇气,三处任一缺失就彻底静音:
- 右下角语言模式必须是
HTML(不是Plain Text或PHP);新建文件先存成index.html,再点右下角切换 - 项目根目录必须有
.htmlhintrc(注意开头是英文句点,全小写,无后缀);内容至少含{"rules": {"attr-value-not-empty": true}} -
.htmlhintrc必须是合法 JSON:少个逗号、多末尾逗号、用了注释都会导致整个文件被忽略 - 规则只对当前工作区生效;打开另一个文件夹,得重新配一遍
.htmlhintrc
最容易被忽略的是:HTMLHint 的规则不会自动继承,哪怕你写了 "tagname-lowercase": true,alt-require 这类关键规则也得显式打开。别指望“开了插件就万事大吉”,它连默认规则集都没有。











