0

0

如何在VSCode中自动格式化Vue文件?解决Vetur格式化问题的技巧

爱谁谁

爱谁谁

发布时间:2025-09-03 14:30:04

|

372人浏览过

|

来源于php中文网

原创

答案是通过配置VSCode使用Prettier作为Vue文件的默认格式化工具,并正确设置vetur.format.defaultFormatter各项语言为prettier,同时确保项目中安装Prettier依赖并配置.prettierrc文件,可解决Vetur与Prettier的格式化冲突,实现保存时自动统一格式化。

如何在vscode中自动格式化vue文件?解决vetur格式化问题的技巧

要在VSCode里搞定Vue文件的自动格式化,尤其是当Vetur时不时给你添堵的时候,其实没那么复杂,核心就是告诉VSCode,你到底想让谁来做这个“美化”工作。通常,这涉及到明确指定一个格式化器(比如Prettier),并确保它的配置是正确的,同时让VSCode知道在保存文件时自动执行。

解决方案

说起来,解决VSCode中Vue文件格式化问题,特别是Vetur可能带来的那些小麻烦,我通常会从几个层面入手,这套组合拳下来,基本上能把问题搞定。

首先,最直接的办法是确保VSCode知道你希望用哪个格式化器来处理Vue文件。很多时候,Vetur自带的格式化器可能不是我们最想要的,或者它的默认配置不符合团队规范。所以,我一般会强制指定Prettier作为Vue文件的默认格式化工具。你可以在

.vscode/settings.json
(项目级设置,推荐)或者用户设置中添加:

{
  "editor.defaultFormatter": "esbenp.prettier-vscode", // 全局或特定文件类型的默认格式化器
  "editor.formatOnSave": true, // 开启保存时自动格式化
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode" // 专门为Vue文件指定Prettier
  },
  "vetur.format.defaultFormatter.html": "prettier", // 告诉Vetur,HTML部分用Prettier
  "vetur.format.defaultFormatter.css": "prettier",   // CSS部分用Prettier
  "vetur.format.defaultFormatter.postcss": "prettier",
  "vetur.format.defaultFormatter.scss": "prettier",
  "vetur.format.defaultFormatter.less": "prettier",
  "vetur.format.defaultFormatter.stylus": "prettier",
  "vetur.format.defaultFormatter.js": "prettier",     // JS部分用Prettier
  "vetur.format.defaultFormatter.ts": "prettier",     // TS部分用Prettier
  "vetur.format.defaultFormatter.json": "prettier",
  // 甚至可以考虑禁用Vetur自带的一些格式化,让Prettier全权接管
  // "vetur.format.enable": false // 如果Prettier能完全处理,可以考虑禁用Vetur的格式化功能
}

这里面有几个关键点:

editor.defaultFormatter
是通用设置,但
[vue]
块是专门针对Vue文件类型的,它的优先级更高。我还会明确告诉Vetur,它内部的HTML、CSS、JS等部分都交给Prettier来处理,这样可以避免Vetur使用它自己的内置逻辑,导致格式化风格不一致。

立即学习前端免费学习笔记(深入)”;

其次,你需要确保你的项目里安装了Prettier相关的依赖和VSCode扩展。如果没有

esbenp.prettier-vscode
这个扩展,上面的设置自然就无效了。在项目根目录安装
prettier

npm install --save-dev prettier
# 或者
yarn add --dev prettier

然后,在项目根目录创建一个

.prettierrc
文件(或者在
package.json
中配置
prettier
字段),这是Prettier的配置文件,你可以根据团队规范来定义格式化规则,比如单引号、末尾逗号、tab宽度等。这个文件是决定Prettier如何工作的核心。

// .prettierrc
{
  "singleQuote": true,
  "trailingComma": "es5",
  "printWidth": 100,
  "tabWidth": 2,
  "semi": false,
  "vueIndentScriptAndStyle": true // Vue文件特有,让script和style标签内容也缩进
}

最后,如果还遇到问题,我会检查VSCode的输出面板(

View -> Output
),选择“Vue Language Server”或“Prettier”查看是否有报错信息。有时候,插件冲突或者某个配置写错了,这里会有提示。

Vetur与Prettier格式化冲突的根本原因及解决之道

我经常听到有人抱怨Vetur和Prettier在Vue文件格式化上“打架”,导致格式化效果不尽如人意,甚至出现反复横跳的情况。这其实不难理解,Vetur作为Vue的语言支持扩展,它本身就内置了一套格式化机制,而Prettier则是一个独立的、更“专精”的代码格式化工具。当两者都想对同一个文件进行格式化时,冲突就产生了。

Vetur内部会根据文件类型(HTML、CSS、JS/TS)调用不同的格式化器,比如它可能会用

vscode-typescript
来格式化

                

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

417

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

524

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

268

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

761

2023.07.28

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

539

2023.08.01

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.6万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号