VSCode手动格式化与保存时缩进空格数不一致如何解决
解决方案
核心原因:Prettier的格式化配置优先级高于VSCode全局的editor.tabSize设置,你手动触发格式化、换行缩进时走的是编辑器的基础缩进规则,但保存时触发的全量格式化会严格遵循Prettier的默认配置(默认4空格缩进),仅YAML等格式下因为已有对应适配配置才正常。
可按以下步骤依次排查解决:
- 方案1:配置项目级Prettier规则(推荐,保证团队协作格式统一)
在项目根目录新建.prettierrc文件,加入以下配置即可:
{ "tabWidth": 2, "useTabs": false }
如果项目已经存在该文件,直接修改其中的tabWidth值为2即可。
- 方案2:配置全局Prettier规则(适用于所有本地项目)
打开VSCode的settings.json,新增以下全局配置:
"prettier.tabWidth": 2, "prettier.useTabs": false
- 排查冲突配置
如果修改后仍不生效,检查是否存在以下覆盖规则:- 项目根目录存在
.editorconfig文件,其中indent_size参数设为了4,修改为2即可 settings.json中存在针对JavaScript单独设置的editor.tabSize或prettier.tabWidth,值被指定为4,修改为2即可- 本地同时安装了其他JS格式化插件(如Beautify),要么卸载多余格式化插件,要么再次确认JS文件的默认格式化器已指定为
esbenp.prettier-vscode
- 项目根目录存在
配置完成后重启VSCode即可正常生效,不需要关闭自动保存功能。
内容的提问来源于stack exchange,提问作者Software Engineer
相关产品推荐
相关产品推荐

