讲师中心 微信公众号
AI工具推荐 视频效率加速

VSCode格式化Vue代码用什么规范_VSCode集成ESLint【详解】

落明同学_8362

落明同学_8362

发布时间:2026-05-27 12:29:59

|

210人浏览过

|

来源于php中文网

原创

Vue项目VSCode格式化需ESLint、Prettier、Vetur(或@prettier/plugin-vue)协同:ESLint校验修复JS逻辑,Prettier统一代码风格,Vetur/插件处理template/style格式;eslint--fix对template无效因ESLint不解析HTML;须用eslint-config-prettier禁用冲突规则,并配置codeActionsOnSave触发修复。

vscode格式化vue代码用什么规范_vscode集成eslint【详解】

Vue 项目在 VSCode 中格式化代码,不能只靠 Prettier 或只靠 ESLint 单独干活——前者不理解 Vue 的 SFC(单文件组件)结构,后者默认不接管格式化逻辑。真正起作用的是三者协同:ESLint 负责校验 + 报错 + 修复可修复项,Prettier 负责统一格式,Vetur(或更现代的 @vue/eslint-config-prettier + eslint-plugin-vue)负责解析 .vue 文件中的 template/script/style 块。

为什么 eslint --fix 对 .vue 文件 template 部分无效

ESLint 默认只处理 JavaScript 内容。即使你配置了 "eslint.validate": ["vue"],它也只是把整个 .vue 文件丢给 parser 解析,而原生 ESLint parser(如 @babel/eslint-parser)根本不会解析 <template> 里的 HTML 模板语法。

  • 常见现象:eslint --fix 能修 script 里的缩进、分号、引号,但对 template 里属性换行、标签闭合、空格对齐完全没反应
  • 根本原因:ESLint 不是 HTML 格式化工具,vue-eslint-parser 也只提取 script 部分供 ESLint 分析,template 交给 Vetur 或 Prettier 处理
  • 解决方向:template 格式化必须由 Vetur(Vue 2)或 @prettier/plugin-vue(Vue 3)承担;script 和 style 则交由 ESLint + Prettier 联动

prettier 和 eslint-plugin-prettier 怎么配合才不打架

两者直接冲突的典型场景:ESLint 规则要求 semi: false(不加分号),但 Prettier 默认开启分号;或者 ESLint 要求单引号,Prettier 配置成双引号。结果就是保存时反复“修复→破坏→再修复”。

  • 关键动作:必须用 eslint-plugin-prettier 把 Prettier 规则转成 ESLint 规则,并放在 extends 链末端,确保它覆盖前面所有规则
  • 正确配置示例(.eslintrc.js):
    module.exports = {
      extends: [
        'plugin:vue/vue3-essential',
        'eslint-config-prettier', // 关闭所有和格式化冲突的 ESLint 规则
        'plugin:prettier/recommended' // 把 Prettier 规则作为 ESLint 规则启用
      ],
      plugins: ['vue', 'prettier'],
      rules: {
        'prettier/prettier': 'error' // 显式开启,让报错可见
      }
    }
  • 绝对不能漏掉 eslint-config-prettier —— 它不是可选插件,而是“灭火器”,专门禁用 ESLint 自带的格式化类规则(比如 no-multiple-empty-lines、object-curly-spacing)

VSCode 设置里哪些字段决定“保存即格式化”的实际行为

VSCode 的 settings.json 是最终执行开关,配错一个就失效。重点看三个字段是否同时生效:

vue-component-analyzer
vue-component-analyzer

递归分析 Vue 项目组件依赖,从入口文件生成组件层级图,支持 Vue 2/3,输出组件名、文件路径和属性。适用于分析组件结构、排查依赖或了解项目架构。

下载

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

  • "editor.formatOnSave": true —— 启用基础格式化,但只调用当前语言的默认 formatter(Vue 文件默认是 Vetur,不是 ESLint)
  • "editor.codeActionsOnSave": {"source.fixAll.eslint": true} —— 这才是触发 ESLint 自动修复的关键;它和 formatOnSave 是两套机制,不能互相替代
  • "eslint.validate": ["javascript", {"language": "vue", "autoFix": true}] —— 必须显式声明 vue 语言支持并开启 autoFix,否则 ESLint 根本不处理 .vue 文件中的 JS 部分
  • 额外注意:"[vue]": {"editor.defaultFormatter": "esbenp.prettier-vscode"} 这行容易被误加——它会让 Prettier 直接格式化整个 .vue 文件(包括 template),但 Prettier 默认不支持 Vue template,除非你装了 @prettier/plugin-vue 并在 .prettierrc 里启用它

Vue 2 和 Vue 3 的 Prettier 插件支持差异

Vue 2 项目中,@prettier/plugin-vue 对 <template> 的支持有限,尤其是 v-for、v-if 嵌套结构容易崩;Vue 3 因为编译器升级,插件支持更稳。

  • Vue 2 推荐方案:继续用 Vetur 做 template 格式化(配置 "vetur.format.defaultFormatter.html": "prettier"),但需安装 prettier + prettier-plugin-vue 并确保版本兼容(如 prettier@2.8.8 + prettier-plugin-vue@2.4.0)
  • Vue 3 必须启用:
    "prettier": {
      "plugins": ["@prettier/plugin-vue"]
    }
    并在 .prettierrc 中添加 "vueIndentScriptAndStyle": true 等 Vue 专属选项
  • 检查是否生效:打开一个 .vue 文件,在 VSCode 右下角点击格式化器名称,确认显示的是 Prettier 或 Vetur,而不是 None 或 Default Formatter

最常被忽略的一点:VSCode 的 editor.codeActionsOnSave 不会自动格式化 template,也不会修复 style 中的 CSS 问题——它只响应 ESLint 能识别并 fix 的规则。template 和 style 的格式化,本质是另一个独立流程,依赖 Vetur 或 Prettier 插件本身的解析能力,和 ESLint 的 rule list 没有关系。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

1255

2023.06.30

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2652

2023.07.21

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1909

2024.03.14

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1727

2024.03.14

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2587

2024.03.15

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1818

2024.03.15

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1242

2024.03.15

vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

1116

2024.03.15

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

0

2026.10.08

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.5万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn