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数据格式相关文章,帮助大家解决问题。

419

2023.08.07

json是什么
json是什么

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

535

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数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

782

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

434

2024.06.27

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

514

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

244

2023.07.28

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

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

精品课程

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

共34课时 | 2.6万人学习

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

共98课时 | 7.6万人学习

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

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