VSCode如何配置Prettier和ESLint冲突的问题

秋明姑娘_5866

秋明姑娘_5866

2026-05-03

702人浏览

原创

必须让Prettier负责格式、ESLint只管逻辑错误:禁用ESLint所有格式规则,通过eslint-config-prettier统一交由Prettier处理,并在VSCode中关闭eslint.autoFixOnSave、启用editor.formatOnSave且指定defaultFormatter为esbenp.prettier-vscode。

vscode如何配置prettier和eslint冲突的问题

VSCode 里 Prettier 和 ESLint 报红、格式越修越乱,根本不是版本问题,而是两个工具在同时改同一行代码——必须让它们各司其职:Prettier 负责“长什么样”,ESLint 只管“对不对”。

为什么保存后波浪线反复闪、代码被来回修改

典型现象:const a = 1 保存后变成 const a = 1;(Prettier 加分号),紧接着 ESLint 立刻报 Missing semicolon;或者缩进从 2 空格变 4 空格又弹回。这不是插件 bug,是 VSCode 同时触发了 editor.formatOnSave(Prettier)和 eslint.codeActionsOnSave(ESLint 自动修复),两者没协商,直接覆盖对方输出。

  • 检查 settings.json 是否同时存在 "editor.formatOnSave": true 和 "editor.codeActionsOnSave": {"source.fixAll.eslint": true}
  • 确认没有残留的旧配置,比如已废弃的 prettier.eslintIntegration
  • 如果项目用了 TypeScript,@typescript-eslint/indent 和原生 indent 规则共存也会引发冲突,必须关掉后者

如何在 .eslintrc.js 中彻底禁用 ESLint 的格式规则

目标是让 ESLint 完全不碰缩进、引号、分号这些事,只报 undefined is not a function 这类真问题。靠手动关规则容易漏,推荐用 eslint-config-prettier 一键清空。

  • 运行 npm install --save-dev eslint-config-prettier
  • 在 .eslintrc.js 的 extends 数组末尾加上 "prettier":["eslint:recommended", "plugin:react/recommended", "prettier"](顺序不能错,否则前面的规则会覆盖它)
  • 删掉所有显式写的格式类 rule,例如:"semi"、"quotes"、"comma-dangle"、"indent"
  • 保留 "prettier/prettier": "error" —— 这条不是让 ESLint 格式化,而是让它把 Prettier 认为不合规的地方也标出来(比如你忘了配 .prettierrc)

VSCode 设置里必须改的三项关键配置

光改配置文件没用,VSCode 必须明确知道“谁来执行保存时的格式化动作”。以下三项缺一不可,且必须全部生效:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • "editor.formatOnSave": true —— 保持开启,这是触发入口
  • "editor.defaultFormatter": "esbenp.prettier-vscode" —— 明确指定 Prettier 插件为默认格式化器(不是 ESLint)
  • "eslint.autoFixOnSave": false —— 关掉 ESLint 的自动修复,避免它抢在 Prettier 前或后改代码

注意:"eslint.format.enable": true 必须删除或设为 false,否则 ESLint 插件会尝试自己格式化,和 Prettier 冲突。

为什么 .prettierrc 配置了但还是不生效

常见原因是 VSCode 没找到配置文件,或项目依赖没装对。Prettier 插件默认只读取项目根目录下的 .prettierrc、prettier.config.js 或 package.json 里的 prettier 字段。

  • 确认文件名拼写正确:.prettierrc(带点)、.prettierrc.json、prettier.config.js 都可以,但 prettier.json 不行
  • 检查 node_modules/prettier 是否存在 —— Prettier 插件优先使用项目本地安装的版本,不依赖全局
  • 右键编辑器 → “Format Document With…” → 看当前选中的是不是 Prettier,如果不是,点进去选一次并勾选“Configure Default Formatter for ‘JavaScript’”
  • 如果项目有 vue 文件,确保 "[vue]": {"editor.defaultFormatter": "esbenp.prettier-vscode"} 单独配了,Volar/Vetur 可能劫持 vue 文件的格式化行为

最易忽略的一点:VSCode 工作区可能识别错了 Node.js 版本或工作区路径,导致插件加载了错误的 node_modules。重启 VSCode 并打开命令面板(Ctrl+Shift+P)运行 Developer: Reload Window 有时比改十次配置更有效。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.06.30

1615

18

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

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

2023.07.21

3532

3

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

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

2024.03.14

2169

12

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

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

2024.03.14

1767

8

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

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

2024.03.15

2647

12

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

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

2024.03.15

1878

14

vscode用途介绍
vscode用途介绍

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

2024.03.15

1302

10

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

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

2024.03.15

1156

8

vscode设置中文界面不生效解决方法
vscode设置中文界面不生效解决方法

vscode设置中文界面不生效解决方法:安装中文语言包、通过命令面板设置语言、检查 locale.json 设置、重新安装中文语言包、检查 VSCode 版本和更新、排除插件冲突、检查系统语言设置、查看 VSCode 日志和错误消息、重置 VSCode 设置、查看官方文档和社区支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

574

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程