Prettier格式化后自闭合标签括号间多出空格怎么解决? UX-冰冰 提问于 2026-02-01 13:52:27 阅读 81 工具 我在用Prettier格式化HTML时发现,像这样的自闭合标签,格式化后变成了,括号里多了一个空格,但我想让它保持紧贴的形式,该怎么调整啊? 我尝试过搜索bracketSpacing配置,但没搞懂具体怎么设置。比如下面这段代码格式化后: 会变成这样: 这个自闭合标签的括号间空格和 标签的换行让我很困扰,但查文档只看到bracketSpacing选项,不知道具体该怎么配置才能达到想要的效果。 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 Prog.书妍 Lv1 Prettier 默认会对自闭合标签的括号间插入空格,比如 会被格式化成 。这种行为和你想的刚好相反。 这问题不是 bracketSpacing 控制的,那个是针对对象的括号,不是 HTML 标签。 想让自闭合标签保持紧贴,需要改 Prettier 的插件行为,比如用 prettier-plugin-organize-attributes 或者 prettier-html。其中 prettier-html 提供了更细粒度的配置。 安装插件: npm install --save-dev prettier-html 然后在 .prettierrc 中加: { "plugins": ["prettier-html"], "htmlWhitespaceSensitivity": "ignore", "endOfLine": "auto" } 重点是 htmlWhitespaceSensitivity,设成 ignore 之后 Prettier 就不会强制在自闭合标签里加空格了。 如果你还用了 ESLint,建议同步检查 eslint-plugin-html 的配置,确保格式化之后不会被二次修改。 回复 点赞 10 2026-02-05 10:07 闲人青燕 Lv1 { "bracketSpacing": false, "htmlWhitespaceSensitivity": "ignore" } 把上面这段配置加到你的 Prettier 配置文件里,问题就能解决了。关键是 htmlWhitespaceSensitivity 这个选项,设置为 "ignore" 就能忽略多余的空格和换行。 话说回来,Prettier 有时候确实会搞一些让人头大的格式化,但好在配置项够用。如果你用的是 VSCode,记得检查下全局和项目配置有没有冲突。代码放这了,试试吧。 回复 点赞 15 2026-02-01 14:01 加载更多 相关推荐 2 回答 31 浏览 为什么Prettier插件无法正确格式化HTML中的自定义组件标签? 我在用Prettier+prettier-plugin-vue格式化Vue单文件组件时,发现自定义组件的标签会自动合并成一行,比如<MyComponent></MyComponent... Good“莉莉 工具 2026-02-16 23:08:24 2 回答 34 浏览 Prettier配置中如何让对象字面量的括号始终换行? 在React项目里用Prettier格式化时,发现对象字面量的大括号没有按预期换行。比如写成这样:{ foo: 'bar' },但根据团队规范需要强制换行成: { foo: 'bar' } 我尝试在.... ♫蒙蒙 工具 2026-02-15 01:03:25 1 回答 3 浏览 Prettier 格式化 CSS 时为什么把我的嵌套规则搞乱了? 我最近在项目里配置了 Prettier,但发现它格式化 CSS 的时候,会把我在 SCSS 里写的嵌套规则直接打平,导致样式失效。明明 .prettierrc 里也没改什么特殊配置,就是默认设置。这到... ლ郭云 前端 2026-03-11 15:37:19 1 回答 14 浏览 Prettier 格式化时该选哪个 Parser? 我在用 Prettier 格式化一个 .vue 文件,但控制台提示“Parser not found”。我试过在配置里指定 parser 为 vue,但好像不对?官方文档说会自动识别,可我的项目就是不... 设计师爱娜 工具 2026-03-08 13:16:19 1 回答 16 浏览 Prettier 格式化 Vue 模板时为什么缩进不对? 我用 Prettier 格式化 Vue 文件,但模板部分的缩进总是乱的,明明配置了 tabWidth 为 2,可它还是用 4 个空格。试过重启编辑器、重装插件都没用。 这是我的组件代码: <te... 闲人志利 前端 2026-03-04 12:13:18 1 回答 20 浏览 Prettier 为啥不格式化我的 Vue 单文件组件? 我用 Prettier 格式化 Vue 文件时,模板部分完全没反应,是配置问题吗? 我已经装了 Vetur 和 Prettier 插件,也设置了默认格式化工具为 Prettier,但保存时只有 scr... 令狐淇钧 工具 2026-02-28 03:42:22 2 回答 34 浏览 Prettier 和 ESLint 冲突了怎么办? 我用 create-react-app 搭了个项目,装了 Prettier 和 ESLint,但它们格式化规则老打架。比如 ESLint 要求分号,Prettier 却自动删掉,保存时一会儿加一会儿删... Newb.梓涵 工具 2026-02-26 22:52:21 2 回答 27 浏览 为什么安装了prettier的husky hook后提交还是没格式化? 刚给项目配了husky + prettier的pre-commit钩子,但每次提交代码都没触发格式化。已经按文档装了husky、prettier、lint-staged,package.json里配置... 司徒兴瑞 工具 2026-02-19 12:23:27 2 回答 70 浏览 ESLint和Prettier配置冲突怎么解决?代码格式检查老报错 最近团队要求统一代码规范,我把ESLint和Prettier都配上了,但每次保存代码都会报错,比如"Unexpected spaces"和"Missing semicolon"。 尝试过安装eslin... Zz子斌 前端 2026-02-17 00:11:28 2 回答 33 浏览 在Vue项目里改Prettier的parser选项没效果怎么办? 我在Vue项目里配置Prettier时,发现代码格式化总是报错,明明设置了parser是"vue": { "parser": "vue", "semi": false } 但保存时还是提示Failed... 一羽霏 工具 2026-02-13 20:13:26 首页 菜单 问答菜单 全部 前端 框架 组件 优化 交互 工具 移动 安全 关注 我的
会被格式化成![]()
。这种行为和你想的刚好相反。这问题不是
bracketSpacing控制的,那个是针对对象的括号,不是 HTML 标签。想让自闭合标签保持紧贴,需要改 Prettier 的插件行为,比如用
prettier-plugin-organize-attributes或者prettier-html。其中prettier-html提供了更细粒度的配置。安装插件:
然后在
.prettierrc中加:重点是
htmlWhitespaceSensitivity,设成ignore之后 Prettier 就不会强制在自闭合标签里加空格了。如果你还用了 ESLint,建议同步检查
eslint-plugin-html的配置,确保格式化之后不会被二次修改。把上面这段配置加到你的 Prettier 配置文件里,问题就能解决了。关键是
htmlWhitespaceSensitivity这个选项,设置为"ignore"就能忽略多余的空格和换行。话说回来,Prettier 有时候确实会搞一些让人头大的格式化,但好在配置项够用。如果你用的是 VSCode,记得检查下全局和项目配置有没有冲突。代码放这了,试试吧。