Eslint/Prettier未配置相关规则却自动修改分号和引号问题求助
核心原因
ESLint配置中的"root": true仅限制ESLint自身的配置层级向上查找,不会影响Prettier的配置加载逻辑。你当前项目引入了plugin:prettier/recommended,该扩展会自动把Prettier的格式化规则转为ESLint的校验规则,当项目根目录没有显式声明Prettier配置时,Prettier会默认向上查找你系统用户目录下的全局Prettier配置,没有全局配置则启用默认规则,Prettier默认规则就是使用单引号、移除行尾分号,这就是你出现对应报错的原因。
解决步骤
- 第一步先确认项目根目录是否存在
.prettierrc、prettier.config.js等Prettier配置文件,检查是否因为.gitignore规则导致你本地没有拉取到仓库中的对应配置。 - 若项目本身没有统一的Prettier配置,你可以在项目根目录新增
.prettierrc.json文件,显式声明符合项目规范的规则,示例如下(保留分号、使用双引号):
{ "root": true, "semi": true, "singleQuote": false }
其中的"root": true会阻止Prettier向上查找你系统中的全局配置,避免本地全局规则覆盖项目配置。
- 如果你不想新增独立的Prettier配置文件,也可以直接在
.eslintrc.json的rules字段中覆盖相关规则:
{ // 原有配置保持不变 "rules": { "prettier/prettier": ["error", { "semi": true, "singleQuote": false }] } }
- 最后排查你系统用户目录下是否存在全局的Prettier配置文件、
.editorconfig文件,这类文件也会影响格式化规则,如有需要可以删除或者修改匹配规则。
内容的提问来源于stack exchange,提问作者tfantina
相关产品推荐
相关产品推荐

