首选 htmlhint + .htmlhintrc,因其内置40+规则可快速捕获doctype缺失、标签未闭合等高频问题;再配合prettier统一格式化并接入ci卡点,确保规范自动落地。

怎么选第一个检查工具,而不是从零写规范
初创团队没时间争论“该用 2 空格还是 4 空格”,直接上 htmlhint + .htmlhintrc 是最快路径。它内置 40+ 规则,覆盖你马上会踩的坑:比如 doctype-first 报错说明文件开头缺 ,<code>tag-pair 能立刻发现漏闭合的 <div> 或错嵌套的 <code><p></p>
<ul></ul>。
不建议一开始自定义规则。先跑通默认配置,再根据报错聚焦改哪几条——比如团队总忘加 alt,就保留 alt-require;但若全员都用双引号,attr-value-double-quotes 就可关掉。
- 本地安装:
npm install --save-dev htmlhint - 生成基础配置:
htmlhint --init(生成的.htmlhintrc已含推荐规则) - 验证单个文件:
npx htmlhint src/index.html
VS Code 里怎么让格式自动对齐,而不是靠人眼盯
靠手动缩进或复制粘贴对齐,在三人以上协作时必然崩。必须用 prettier 统一格式化,且绑定到保存动作。
prettier 不是“美化工具”,它是强制执行缩进、引号、换行等细节的守门员。和 htmlhint 配合:前者管“长得好不好看”,后者管“有没有语法/语义错误”。
- 安装:
npm install --save-dev prettier - 配置
.prettierrc(关键项):{"tabWidth": 2, "singleQuote": false, "htmlWhitespaceSensitivity": "css"} - VS Code 设置里启用 “Format on save”,并指定默认格式化工具为 Prettier
- 注意:
htmlWhitespaceSensitivity: "css"可避免<pre class="brush:php;toolbar:false;"></pre>或内联white-space元素被意外破坏
哪些规则必须开,哪些可以关,取决于你当前最痛的点
别迷信“全开=更规范”。初创阶段真正影响交付速度的,往往是三类问题:结构出错导致页面白屏、属性缺失引发 SEO/无障碍问题、团队成员写法混乱拉长 Code Review 时间。
优先打开这些规则:doctype-html5(防老式 DOCTYPE 兼容问题)、html-lang-require(强制 )、id-unique(避免 JS 用 document.getElementById 拿错元素)、attr-lowercase(统一大小写,减少拼写争议)。
可暂缓或关闭的规则:attr-no-duplication(重复属性极少出现,且浏览器实际会取最后一个值)、inline-script-disabled(MVP 阶段内联脚本效率更高,等架构稳定再拆)。
- 修改
.htmlhintrc时,只改true/false,不要删整条规则——方便后续回溯 - 每新增一条规则,同步在 README 写一句解释,例如:
"attr-lowercase": true // 防止 class='Header' 和 class='header' 混用
CI 流程里加一道卡点,比开会强调十次更有效
靠口头约定或 PR 描述提醒“请格式化代码”,三天后就会失效。把 htmlhint 和 prettier --check 塞进 CI 的 pre-commit 或 PR 检查环节,才是真落地。
GitHub Actions 示例(.github/workflows/html-check.yml):
name: HTML Quality Check
on: [pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm ci
- name: Run HTMLHint
run: npx htmlhint "**/*.html"
- name: Check Prettier formatting
run: npx prettier --check "**/*.html"
这条流水线不会阻断开发,但会让每个 PR 明确显示“哪些文件未通过格式检查”,新人第一次提 PR 就能直观理解标准。
最容易被忽略的是:团队里有人用 WebStorm、有人用 VS Code、还有人用 Vim —— 工具链差异越大,越要靠 CI 卡住底线。格式和规则不是风格偏好,是避免 <img src="logo.png"> 这种写法偷偷上线的最后防线。











