Prettier格式化后自闭合标签括号间多出空格怎么解决? UX-冰冰 提问于 2026-02-01 13:52:27 阅读 62 工具 我在用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 的配置,确保格式化之后不会被二次修改。 回复 点赞 6 2026-02-05 10:07 闲人青燕 Lv1 { "bracketSpacing": false, "htmlWhitespaceSensitivity": "ignore" } 把上面这段配置加到你的 Prettier 配置文件里,问题就能解决了。关键是 htmlWhitespaceSensitivity 这个选项,设置为 "ignore" 就能忽略多余的空格和换行。 话说回来,Prettier 有时候确实会搞一些让人头大的格式化,但好在配置项够用。如果你用的是 VSCode,记得检查下全局和项目配置有没有冲突。代码放这了,试试吧。 回复 点赞 8 2026-02-01 14:01 加载更多 相关推荐 2 回答 7 浏览 为什么Prettier插件无法正确格式化HTML中的自定义组件标签? 我在用Prettier+prettier-plugin-vue格式化Vue单文件组件时,发现自定义组件的标签会自动合并成一行,比如<MyComponent></MyComponent... Good“莉莉 工具 2026-02-16 23:08:24 2 回答 26 浏览 Prettier配置中如何让对象字面量的括号始终换行? 在React项目里用Prettier格式化时,发现对象字面量的大括号没有按预期换行。比如写成这样:{ foo: 'bar' },但根据团队规范需要强制换行成: { foo: 'bar' } 我尝试在.... ♫蒙蒙 工具 2026-02-15 01:03:25 1 回答 10 浏览 为什么安装了prettier的husky hook后提交还是没格式化? 刚给项目配了husky + prettier的pre-commit钩子,但每次提交代码都没触发格式化。已经按文档装了husky、prettier、lint-staged,package.json里配置... 司徒兴瑞 工具 2026-02-19 12:23:27 2 回答 52 浏览 ESLint和Prettier配置冲突怎么解决?代码格式检查老报错 最近团队要求统一代码规范,我把ESLint和Prettier都配上了,但每次保存代码都会报错,比如"Unexpected spaces"和"Missing semicolon"。 尝试过安装eslin... Zz子斌 前端 2026-02-17 00:11:28 2 回答 17 浏览 在Vue项目里改Prettier的parser选项没效果怎么办? 我在Vue项目里配置Prettier时,发现代码格式化总是报错,明明设置了parser是"vue": { "parser": "vue", "semi": false } 但保存时还是提示Failed... 一羽霏 工具 2026-02-13 20:13:26 2 回答 34 浏览 Prettier安装了Vue插件但模板格式没变化怎么办? 刚给项目装了prettier-plugin-vue,配置了.prettierrc里plugins和singleQuote选项,但保存时双引号还是没转成单引号,vue文件的模板结构也没自动整理。重启过V... 欧阳琪帆 工具 2026-02-05 13:17:28 1 回答 45 浏览 Prettier配置了单引号和缩进,但代码保存后还是双引号和2个空格? 我在项目根目录设置了.prettierrc文件,配置了singleQuote: true和tabWidth: 4,但保存JS文件时代码还是显示双引号和2个空格缩进。尝试过重启VSCode和运行npx ... 迷人的雨诺 前端 2026-02-01 18:16:27 2 回答 33 浏览 Prettier的printWidth设置后代码还是换行了是怎么回事? 在React项目里设置了Prettier的printWidth为80,但写长字符串时代码还是在80字符前强行换行了。比如写这种JSX: {`const longText = '这个字符串明明没到80个... 技术玉曼 工具 2026-01-27 23:56:21 2 回答 43 浏览 Prettier的ignore文件配置后为什么没生效? 我在React项目根目录创建了.prettierrc.ignore文件,里面写了:node_modules/ src/exclude/**/*但运行npx prettier . --write时,这些... 司马涵舒 工具 2026-02-08 18:21:31 2 回答 17 浏览 Prettier配置了尾逗号为什么还是被删除了? 我在项目里启用了Prettier的trailingComma选项,但保存代码时对象最后一项的逗号还是被自动删掉了。比如: // .prettierrc配置了"trailingComma": "all"... 公孙春光 工具 2026-02-07 15:05: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,记得检查下全局和项目配置有没有冲突。代码放这了,试试吧。