如何解决VSCode中Prettier与ESLint冲突,优先使用项目配置
箭头函数返回对象类型断言的ESLint/Prettier配置冲突解决
我找不到相关设置来禁用针对类型断言的ESLint错误提示与自动格式化。在箭头函数返回对象后直接使用as关键字时,ESLint会报错。
格式化前代码
const someResult = someArray.map( () => ({ // Object props } as SomeType), );
收到的警告
格式化后代码 - 保存文件时代码会短暂变为如下形式,随后又恢复原状,推测是VSCode配置与项目配置冲突导致:
const someResult = someArray.map( () => ({ // Object props }) as SomeType, );
我希望优先使用项目的ESLint/Prettier配置,仅根据项目规则进行格式化与错误提示,需要修改哪些设置?
解决步骤
1. 让VSCode优先读取项目配置
打开VSCode设置(快捷键Ctrl+,或Cmd+,),完成以下配置:
- 搜索
editor.defaultFormatter,将其设置为dbaeumer.vscode-eslint(若用ESLint负责格式化)或esbenp.prettier-vscode(若用Prettier),确保编辑器依赖插件而非内置规则。 - 搜索
eslint.format.enable,勾选该选项,开启ESLint的格式化功能。 - 搜索
prettier.requireConfig,勾选后Prettier仅读取项目根目录的.prettierrc等配置文件,忽略VSCode全局设置。 - 搜索
editor.codeActionsOnSave,配置成如下内容,确保保存时优先执行项目的ESLint和Prettier修复:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true, "source.fixAll.prettier": true }
2. 禁用类型断言相关的ESLint规则
如果报错来自TypeScript相关的ESLint规则(比如@typescript-eslint/no-unnecessary-type-assertion),在项目根目录的.eslintrc.js(或对应格式的配置文件)中修改规则:
module.exports = { // 其他已有配置 rules: { "@typescript-eslint/no-unnecessary-type-assertion": "off" } };
3. 统一Prettier格式规则
若格式化时括号位置反复变化,检查项目的.prettierrc配置,确保arrowParens规则统一:
{ "arrowParens": "always" }
最后确认项目根目录存在.eslintrc、.prettierrc等配置文件,VSCode右下角状态栏的ESLint插件显示为"正常运行"状态。
内容的提问来源于stack exchange,提问作者Andyally
相关产品推荐
相关产品推荐

