Prettier 的 htmlWhitespaceSensitivity 到底该怎么用? 端木梓希 提问于 2026-03-21 12:37:21 阅读 54 工具 我在用 Prettier 格式化 Vue 组件时,发现 HTML 里的空格有时候被删掉导致样式错乱。查了文档说可以用 htmlWhitespaceSensitivity 配置,但我设成 "strict" 还是没效果,这是为啥? 我的 .prettierrc 是这样写的: { "htmlWhitespaceSensitivity": "strict" } Prettier 我来解答 赞 8 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 设计师佳佳 Lv1 我之前踩过这个坑,htmlWhitespaceSensitivity 这个配置确实容易让人迷惑。你现在的配置只改了 .prettierrc 文件是不够的,还得注意几点。 首先得确认 Prettier 版本是不是最新的,我就遇到过旧版本不生效的情况。然后呢,你的 Vue 文件里可能有些地方 Prettier 没法完全控制格式,比如内联样式或者复杂的模板表达式。 给你一个完整的配置参考吧,在 .prettierrc 里加上这些: { "printWidth": 80, "tabWidth": 2, "useTabs": false, "htmlWhitespaceSensitivity": "strict", "vueIndentScriptAndStyle": true } 还有个坑要注意,如果你用了 ESLint 和 Prettier 配合工作,记得安装 eslint-plugin-prettier 和 eslint-config-prettier 插件,不然格式化结果可能被覆盖。 最后提醒下,有时候 IDE 的插件缓存问题也会导致配置没生效,重启一下编辑器试试看。折腾了一圈下来,发现很多时候就是这些小细节在捣鬼。 回复 点赞 2026-03-30 17:02 UE丶景荣 Lv1 htmlWhitespaceSensitivity 设置为 "strict" 应该会保留所有的空格,但有时候效果可能不如预期,尤其是嵌入式框架或者特定的模板语法里。你检查一下 Vue 组件中的空格是不是在某些特殊标签或者指令内?这些地方 Prettier 可能会有不同的处理方式。 另外,确保你的 Prettier 版本是最新的,有时候问题可能是由 bug 引起的。升级一下试试? 如果问题依然存在,可以尝试在你的编辑器插件设置里调整一下 Prettier 的配置,有时候全局和项目级别的配置会冲突。 最后,你也可以试试看把这个选项设置为 "ignore" 或 "css",看看哪种更适合你的项目风格。有时候 "css" 能够更好地保留空格,尤其是在样式相关的 HTML 结构里。 记得保存修改后的 .prettierrc 文件后重新格式化文件,确保配置生效。希望这些能帮到你。 回复 点赞 2026-03-21 13:07 加载更多 相关推荐 2 回答 45 浏览 Prettier 的 endOfLine 配置到底该怎么设才不报错? 我在 Windows 上写 React 项目,每次提交代码 Git 都提示 CRLF 警告,说 Prettier 格式化后换行符变了。我试过在 .prettierrc 里设 "endOfLine": ... 小志诚 工具 2026-03-21 14:29:20 1 回答 67 浏览 Prettier 插件不格式化 Vue 单文件组件里的 script 部分怎么办? 我装了 Prettier 和 @prettier/plugin-pug、prettier-plugin-vue 这些插件,但保存时 Vue 文件里的 script 代码还是没被格式化,template... Designer°利利 工具 2026-03-25 10:00:20 2 回答 58 浏览 Prettier 和 ESLint 冲突了怎么办? 我用 create-react-app 搭了个项目,装了 Prettier 和 ESLint,但它们格式化规则老打架。比如 ESLint 要求分号,Prettier 却自动删掉,保存时一会儿加一会儿删... Newb.梓涵 工具 2026-02-26 22:52:21 2 回答 61 浏览 Prettier 和 ESLint 冲突了怎么办? 我刚在项目里同时配了 Prettier 和 ESLint,结果保存代码时格式老是打架。比如 ESLint 要求分号结尾,Prettier 却自动删掉,改完一保存又变回去了,烦死了。 我试过装 esli... 司马雨帆 工具 2026-02-25 03:41:18 2 回答 105 浏览 ESLint和Prettier配置冲突怎么解决?代码格式检查老报错 最近团队要求统一代码规范,我把ESLint和Prettier都配上了,但每次保存代码都会报错,比如"Unexpected spaces"和"Missing semicolon"。 尝试过安装eslin... Zz子斌 前端 2026-02-17 00:11:28 2 回答 71 浏览 在Vue项目里改Prettier的parser选项没效果怎么办? 我在Vue项目里配置Prettier时,发现代码格式化总是报错,明明设置了parser是"vue": { "parser": "vue", "semi": false } 但保存时还是提示Failed... 一羽霏 工具 2026-02-13 20:13:26 2 回答 84 浏览 Prettier安装了Vue插件但模板格式没变化怎么办? 刚给项目装了prettier-plugin-vue,配置了.prettierrc里plugins和singleQuote选项,但保存时双引号还是没转成单引号,vue文件的模板结构也没自动整理。重启过V... 欧阳琪帆 工具 2026-02-05 13:17:28 2 回答 114 浏览 Prettier格式化后自闭合标签括号间多出空格怎么解决? 我在用Prettier格式化HTML时发现,像这样的自闭合标签,格式化后变成了,括号里多了一个空格,但我想让它保持紧贴的形式,该怎么调整啊? 我尝试过搜索bracketSpacing配置,但没搞懂具体... UX-冰冰 工具 2026-02-01 13:52:27 2 回答 63 浏览 Prettier的printWidth设置后代码还是换行了是怎么回事? 在React项目里设置了Prettier的printWidth为80,但写长字符串时代码还是在80字符前强行换行了。比如写这种JSX: {`const longText = '这个字符串明明没到80个... 技术玉曼 工具 2026-01-27 23:56:21 1 回答 42 浏览 Prettier 为啥不按我的设置加 semicolon 分号? 我明明在 .prettierrc 里设置了 "semi": true,但保存代码时 Prettier 还是把分号删掉了,这到底是哪出问题了? 我用的是 VS Code,也装了 Prettier 插件,... Air-小菊 工具 2026-03-25 11:43:23
首先得确认 Prettier 版本是不是最新的,我就遇到过旧版本不生效的情况。然后呢,你的 Vue 文件里可能有些地方 Prettier 没法完全控制格式,比如内联样式或者复杂的模板表达式。
给你一个完整的配置参考吧,在 .prettierrc 里加上这些:
还有个坑要注意,如果你用了 ESLint 和 Prettier 配合工作,记得安装 eslint-plugin-prettier 和 eslint-config-prettier 插件,不然格式化结果可能被覆盖。
最后提醒下,有时候 IDE 的插件缓存问题也会导致配置没生效,重启一下编辑器试试看。折腾了一圈下来,发现很多时候就是这些小细节在捣鬼。
另外,确保你的 Prettier 版本是最新的,有时候问题可能是由 bug 引起的。升级一下试试?
如果问题依然存在,可以尝试在你的编辑器插件设置里调整一下 Prettier 的配置,有时候全局和项目级别的配置会冲突。
最后,你也可以试试看把这个选项设置为 "ignore" 或 "css",看看哪种更适合你的项目风格。有时候 "css" 能够更好地保留空格,尤其是在样式相关的 HTML 结构里。
记得保存修改后的 .prettierrc 文件后重新格式化文件,确保配置生效。希望这些能帮到你。