Prettier 格式化 Vue 模板时为什么缩进不对? 闲人志利 提问于 2026-03-04 12:13:18 阅读 43 前端 我用 Prettier 格式化 Vue 文件,但模板部分的缩进总是乱的,明明配置了 tabWidth 为 2,可它还是用 4 个空格。试过重启编辑器、重装插件都没用。 这是我的组件代码: <template> <div class="container"> <h1>Hello World</h1> </div> </template> 期望缩进是 2 个空格,但保存后变成 4 个,是我哪里配错了吗? 我来解答 赞 8 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 爱学习的建宇 Lv1 这大概率是配置冲突或者编辑器插件抢了格式化的控制权。Vue 项目里这种情况太常见了,Vetur 或者 Volar 插件有时候会用自己的规则覆盖 Prettier,导致你配了半天也没用。 最稳妥的办法是在项目根目录建一个 .prettierrc 文件,把配置写死,别依赖编辑器设置。内容直接写 JSON: { "tabWidth": 2, "useTabs": false, "semi": false, "singleQuote": true } 建好之后去 VS Code 设置里搜一下 default formatter,确保 Vue 文件的默认格式化程序选的是 Prettier - Code formatter。如果你装了 Vetur,记得把它的 vetur.format.defaultFormatter.html 之类的选项关掉或者指向 Prettier,别让它自作主张。 还有个容易被忽略的坑是项目里的 .editorconfig 文件。如果这个文件存在且里面设置了 indent_size = 4,它会覆盖 Prettier 的设置,优先级很高,一定要检查一下。 从代码安全和规范的角度来看,光靠编辑器配置是不够的,万一有人没装插件或者配置不一样,提交上去的代码格式就乱了。建议你在 package.json 里加个 lint 脚本,或者用 husky 在 commit 阶段做一次格式化校验,强制统一缩进,避免代码风格不一致引发的合并冲突。 回复 点赞 2 2026-03-04 15:06 加载更多 相关推荐 1 回答 33 浏览 Prettier 为啥不格式化我的 Vue 单文件组件? 我用 Prettier 格式化 Vue 文件时,模板部分完全没反应,是配置问题吗? 我已经装了 Vetur 和 Prettier 插件,也设置了默认格式化工具为 Prettier,但保存时只有 scr... 令狐淇钧 工具 2026-02-28 03:42:22 1 回答 57 浏览 Prettier 插件不格式化 Vue 单文件组件里的 script 部分怎么办? 我装了 Prettier 和 @prettier/plugin-pug、prettier-plugin-vue 这些插件,但保存时 Vue 文件里的 script 代码还是没被格式化,template... Designer°利利 工具 2026-03-25 10:00:20 2 回答 64 浏览 在Vue项目里改Prettier的parser选项没效果怎么办? 我在Vue项目里配置Prettier时,发现代码格式化总是报错,明明设置了parser是"vue": { "parser": "vue", "semi": false } 但保存时还是提示Failed... 一羽霏 工具 2026-02-13 20:13:26 2 回答 78 浏览 Prettier安装了Vue插件但模板格式没变化怎么办? 刚给项目装了prettier-plugin-vue,配置了.prettierrc里plugins和singleQuote选项,但保存时双引号还是没转成单引号,vue文件的模板结构也没自动整理。重启过V... 欧阳琪帆 工具 2026-02-05 13:17:28 2 回答 50 浏览 为什么Prettier插件无法正确格式化HTML中的自定义组件标签? 我在用Prettier+prettier-plugin-vue格式化Vue单文件组件时,发现自定义组件的标签会自动合并成一行,比如<MyComponent></MyComponent... Good“莉莉 工具 2026-02-16 23:08:24 1 回答 47 浏览 Prettier 格式化时该选哪个 Parser? 我在用 Prettier 格式化一个 .vue 文件,但控制台提示“Parser not found”。我试过在配置里指定 parser 为 vue,但好像不对?官方文档说会自动识别,可我的项目就是不... 设计师爱娜 工具 2026-03-08 13:16:19 2 回答 41 浏览 Prettier 的 htmlWhitespaceSensitivity 到底该怎么用? 我在用 Prettier 格式化 Vue 组件时,发现 HTML 里的空格有时候被删掉导致样式错乱。查了文档说可以用 htmlWhitespaceSensitivity 配置,但我设成 "strict... 端木梓希 工具 2026-03-21 12:37:21 1 回答 55 浏览 Prettier 的 bracketSpacing 设置为啥没生效? 我在 Vue 项目里配置了 Prettier 的 bracketSpacing: false,但对象字面量里的花括号还是有空格,根本没变化,是我配错了吗? 已经试过重启编辑器、删 node_modul... 设计师雨辰 工具 2026-03-19 21:16:16 2 回答 54 浏览 Prettier 为什么没格式化我的 HTML 标签换行? 我用 Prettier 格式化 HTML 文件,但发现它没把长标签自动换行,看起来特别挤。明明在 .prettierrc 里设置了 printWidth: 80,为啥不起作用? 比如下面这段代码,Pr... Code°采涵 工具 2026-03-13 15:41:20 1 回答 47 浏览 Prettier 格式化 CSS 时为什么把我的嵌套规则搞乱了? 我最近在项目里配置了 Prettier,但发现它格式化 CSS 的时候,会把我在 SCSS 里写的嵌套规则直接打平,导致样式失效。明明 .prettierrc 里也没改什么特殊配置,就是默认设置。这到... ლ郭云 前端 2026-03-11 15:37:19
最稳妥的办法是在项目根目录建一个
.prettierrc文件,把配置写死,别依赖编辑器设置。内容直接写 JSON:建好之后去 VS Code 设置里搜一下
default formatter,确保 Vue 文件的默认格式化程序选的是Prettier - Code formatter。如果你装了 Vetur,记得把它的vetur.format.defaultFormatter.html之类的选项关掉或者指向 Prettier,别让它自作主张。还有个容易被忽略的坑是项目里的
.editorconfig文件。如果这个文件存在且里面设置了indent_size = 4,它会覆盖 Prettier 的设置,优先级很高,一定要检查一下。从代码安全和规范的角度来看,光靠编辑器配置是不够的,万一有人没装插件或者配置不一样,提交上去的代码格式就乱了。建议你在
package.json里加个 lint 脚本,或者用 husky 在 commit 阶段做一次格式化校验,强制统一缩进,避免代码风格不一致引发的合并冲突。