配置nvim coc-eslint与Prettier时单引号设置失效求助
ESLint与Prettier单引号配置冲突,格式化后仍生成双引号?
问题描述:
我已经花了好几个小时调试.eslintrc.json配置,核心需求是让代码统一用单引号。我知道eslint:recommended默认包含单引号相关规则,但执行Prettier格式化时还是会生成双引号。我试过在prettier/prettier规则里配置singleQuote: true,也直接设置了quotes: ["error", "single"]——编辑时双引号会被ESLint标红,但Prettier格式化后还是变回双引号,实在没辙了,求帮忙。
我的.eslintrc.json配置如下:
{ "env": { "browser": true, "commonjs": true, "es2021": true, "node": true }, "extends": ["eslint:recommended", "prettier"], "plugins": ["prettier", "@babel", "vue"], "parserOptions": { "ecmaVersion": 2022, "parser": "@babel/eslint-parser", "sourceType": "module" }, "rules": { "no-console": "off", "indent": ["error", 2], "linebreak-style": ["error", "unix"], "quotes": ["error", "single"], "semi": ["error", "always"], "prettier/prettier": ["error", { "singleQuote": true, "onlyUseLocalVersion": false }] } }
解决方案:
- 检查项目根目录是否存在独立的Prettier配置文件(比如
.prettierrc、.prettierrc.json、.prettierrc.js),Prettier会优先读取这类独立配置,而非ESLint规则里的prettier/prettier配置。如果有,直接在该文件中添加"singleQuote": true即可。 - 确认本地项目的
prettier版本与eslint-plugin-prettier依赖的Prettier版本是否一致。onlyUseLocalVersion: false可能导致使用全局安装的Prettier,而全局配置可能覆盖了你的本地设置。建议将onlyUseLocalVersion设为true,或者重新安装匹配版本的prettier和eslint-plugin-prettier。 - 检查编辑器的Prettier插件设置,比如VS Code中要确保
Prettier: Config Path指向项目的配置文件,且Prettier: Use Editor Config没有启用(避免.editorconfig的设置干扰)。 - 暂时注释掉ESLint的
quotes规则,让Prettier完全管控引号格式。虽然理论上两者配置不冲突,但部分场景下可能存在优先级问题,注释后测试是否能正常生成单引号。
内容的提问来源于stack exchange,提问作者LongHike
相关产品推荐
相关产品推荐

