VSCode中Prettier插件设为默认格式化器后无法保存自动格式化
针对你遇到的「手动用Prettier格式化HTML正常,但设为默认后保存不触发自动格式化」的问题,按以下步骤排查解决:
确认HTML专属的保存格式化配置
打开VSCode的设置文件(settings.json),检查是否为HTML文件单独开启了保存格式化,同时指定了Prettier为默认格式化器,配置应类似:"[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true }注意:全局的
editor.formatOnSave可能被语言专属配置覆盖,必须确保HTML区块里的editor.formatOnSave为true。检查Prettier的配置依赖开关
如果你的Prettier开启了prettier.requireConfig选项(即必须存在.prettierrc等配置文件才会工作),但当前HTML文件所在目录没有Prettier配置文件,保存时会自动跳过格式化。可以:- 在项目根目录创建一个基础的
.prettierrc文件(比如{ "singleQuote": true }) - 或者在设置里关闭
prettier.requireConfig选项
- 在项目根目录创建一个基础的
排查扩展冲突
禁用其他HTML相关的格式化扩展(比如Beautify、HTML Formatter等),这类扩展可能会和Prettier争夺HTML文件的格式化控制权,导致保存时触发的不是Prettier。查看Prettier输出日志
打开VSCode的「输出」面板,在下拉菜单中选择「Prettier」,保存HTML文件时查看是否有报错信息(比如配置解析错误、文件类型不匹配等),根据日志定位具体问题。检查格式化触发模式
确认editor.formatOnSaveMode的设置,如果设为modifications,只有文件中修改过的部分才会被格式化;如果设为file则会格式化整个文件。根据需求调整该选项,确保符合你的预期。
内容的提问来源于stack exchange,提问作者upjosh

