htmlhint提示不生效需确认三件事:.htmlhintrc必须位于项目根目录且为纯json格式;文件语言模式须设为html;需禁用其他lint插件避免诊断通道冲突。

VS Code 里 HTMLHint 提示不生效?先确认这三件事
不是插件没装好,而是配置链断在了某个环节。VS Code 的 HTMLHint 插件只认项目根目录下的 .htmlhintrc 文件,且必须是纯 JSON 格式(不能用 JS 导出对象),同时文件语言模式得是 HTML——右下角状态栏显示 “HTML” 而非 “Plain Text” 或 “Vue”。
- 检查
.htmlhintrc是否存在且路径正确:它必须和package.json同级,内容不能含注释、module.exports或require() - 禁用其他冲突 lint 插件,比如
htmllint或eslint-plugin-html的实时提示,它们会抢占诊断通道 - 重启 VS Code(不是重载窗口),否则插件可能缓存旧配置
Vue 项目中 v-if/v-for 被标红?别关规则,换解析上下文
HTMLHint 默认按 XHTML 风格校验,把 v-if 当非法属性报错,本质是它不识别 Vue 模板语法。硬关 attr-lowercase 或 attr-no-duplication 只是掩耳盗铃,真正该做的是让工具知道“这是 Vue 模板”。
- 在
.htmlhintrc中显式关闭模板敏感规则:"attr-req-value": false、"tag-self-close": false - 对
.vue文件,改用eslint-plugin-vue处理<template></template>块,HTMLHint只负责纯.html静态页 - 如果用了
eslint-plugin-html,注意它只提取<script></script>/<style></style>,不处理<template></template>,别指望它能拦住v-model拼写错误
保存即修复但格式错乱?prettier 和 htmlhint 的顺序必须锁死
VS Code 里开 “保存自动格式化” 后,prettier 把缩进改成 2 空格,htmlhint 却按 4 空格规则报错,这不是工具打架,是你没控制执行链路。
- 在
settings.json中关闭editor.formatOnSave,改用lint-staged统一调度 -
lint-staged配置必须链式调用:"*.html": ["prettier --write", "htmlhint"],确保格式化完再校验 -
prettier的htmlWhitespaceSensitivity设为"css",否则<span>ab</span>会被拆成多行,破坏内联布局
为什么本地提示全绿,CI 却失败?构建层和编辑器的配置没对齐
VS Code 提示只是前端开发体验层,CI 流水线跑的是 CLI 命令,两者用的不是同一套配置入口。常见情况是:本地靠插件读 .htmlhintrc,CI 却执行 npx htmlhint src/**/*.html,后者默认忽略配置文件。
- CI 脚本里必须显式传参:
npx htmlhint --config .htmlhintrc src/**/*.html - Webpack 构建时若用
html-webpack-plugin,需在插件选项里嵌入htmlhint: { options: { ... } },否则构建阶段不校验 - 微服务项目里,不同子应用(React/Vue)共用一个
.htmlhintrc必然误报,应按目录隔离:app-vue/.htmlhintrc和app-react/.htmlhintrc,CI 分别调用
img-req-alt 是防止布局塌陷,head-script-disabled 是避免脚本阻塞渲染。把所有规则都打开,反而会让开发者习惯性忽略警告。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











