Prettier格式化异常:默认格式化无效,仅强制/指定格式化可用
以下是排查和修正的具体方案:
给特定文件类型绑定Prettier
全局的editor.defaultFormatter可能没覆盖到你当前编辑的文件类型,需要单独给对应语言配置默认格式化工具。在settings.json里添加:"[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }把你常用的文件类型都加上,确保Prettier成为这些类型的默认选择。
关掉冲突的格式化插件
如果装了ESLint、Beautify、Vetur这类带格式化功能的插件,它们可能会和Prettier抢默认优先级。直接在插件面板禁用这些插件,重启VS Code再试。检查Prettier插件状态
确认esbenp.prettier-vscode插件是启用状态,并且更新到最新版本。旧版本可能存在兼容性问题,更新后重启编辑器。清除局部禁用格式化的配置
检查settings.json里有没有针对某类文件关闭格式化的配置,比如:"[javascript]": { "editor.formatOnSave": false }要是有就删掉或者改成
true,避免覆盖全局的formatOnSave设置。确保Prettier配置文件有效
虽然开了prettier.requireConfig: true,但得保证项目根目录有合法的Prettier配置文件(比如.prettierrc、prettier.config.js),内容不能有语法错误。举个简单的示例:{ "singleQuote": true, "printWidth": 80 }避免格式化触发被其他配置覆盖
如果配置了editor.codeActionsOnSave,比如ESLint自动修复,可能会影响Prettier的保存格式化。可以调整成这样:"editor.codeActionsOnSave": { "source.fixAll.eslint": true }确保不会和Prettier的格式化逻辑冲突。
配置完后重启VS Code,测试Format Document和保存自动格式化是否正常工作。
内容的提问来源于stack exchange,提问作者H.C

