Prettier 默认不接管 HTML 文件格式化,必须手动指定其为[html]语言的默认格式化器、禁用内置html.format.enable、设置printWidth:100和htmlWhitespaceSensitivity:"css",并确保语言模式为HTML。

Prettier 能统一 HTML 格式,但默认不生效——必须手动接管格式化权、配对 ESLint、禁用冲突设置,否则团队成员保存文件时根本不会触发。
VS Code 里 Prettier 为什么对 .html 文件没反应
不是插件没装,也不是配置写错,而是 VS Code 默认用内置 HTML 格式化器(html.format.enable),Prettier 被静默跳过。
- 打开任意
.html文件 → 右键 → Format Document With… → Configure Default Formatter… → 选Prettier - Code formatter - 检查
.vscode/settings.json或全局设置,删掉或注释掉"html.format.enable": true - 确保 VS Code 右下角语言模式是
HTML(不是Plain Text或其他)
关键配置项:printWidth 和 htmlWhitespaceSensitivity
printWidth 默认 80,但 HTML 属性名长(如 data-test-id、aria-labelledby),极易被硬拆成多行,反而降低可读性;htmlWhitespaceSensitivity 控制换行是否影响渲染,设错会导致 <p><img alt="统一格式化:Prettier在团队HTML规范配置中的应用" >text</p> 渲染异常。
-
printWidth: 100是更务实的选择:多数单行属性能保住在一行 -
htmlWhitespaceSensitivity: "css"必须显式设置:保持行内元素语义不被换行破坏 - 别开
bracketSameLine: true:HTML 多属性时>跑到行尾,找结束标签像寻宝
ESLint 和 Prettier 怎么不打架
只装 eslint-plugin-prettier 不够,它只是把 Prettier 规则“翻译”成 ESLint 警告,但不会关掉 ESLint 自带的格式类规则(比如 quotes、indent),结果就是重复报错、改完一个又来十个。
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
立即学习“前端免费学习笔记(深入)”;
- 必须同时安装
eslint-config-prettier,并在.eslintrc.cjs的extends数组末尾加上"plugin:prettier/recommended" - HTML 内联脚本(
<script></script>块)要被 ESLint 检查,得额外加eslint-plugin-html - 运行
npx eslint --print-config src/index.html | grep -A5 prettier,确认输出里只有"prettier/prettier": "error",且无quotes类残留规则
Vue / 微信小程序等混合文件怎么让 Prettier 生效
Prettier 默认只处理纯 .html 文件,.vue、.wxml 等含嵌入式 HTML 的文件需要显式声明语言支持,否则保存时完全没反应。
- 在
.prettierrc.cjs或.prettierrc中确保启用了 HTML 支持(新版默认开启,但旧版或自定义 parser 下可能失效) - VS Code 设置中添加:
"prettier.documentSelectors": ["*.vue", "*.wxml"] - Vue 项目建议 Prettier 降级到
2.8.8,并禁用不稳定选项(如htmlWhitespaceSensitivity在某些版本中对<template></template>解析不准)
真正卡住团队落地的,从来不是配置多难写,而是 VS Code 默认格式化器没切过去、ESLint 冲突规则没关干净、混合文件类型没显式声明——这三处漏掉任何一处,Prettier 就只是个摆设。


















