如何阻止VS Code默认工作区设置覆盖手动配置的用户设置
问题说明
无项目内.vscode工作区配置文件时,VS Code默认工作区配置优先级高于用户自定义设置,导致用户配置的prettier.tabWidth = 4被默认值2覆盖;直接修改工作区设置会自动在项目目录生成配置文件,违反团队禁止提交IDE专属目录的规定。需要在不往项目目录添加任何IDE相关文件的前提下,让自定义的Prettier缩进配置正常生效。
相关配置参考:配置截图1、配置截图2
解决方案
以下方案均不会在项目目录生成任何配置文件,按适配场景优先级排序:
方案1:关闭Prettier的.editorconfig读取规则
90%以上的同类问题都是因为项目根目录存在.editorconfig配置文件,Prettier扩展默认优先读取该文件的缩进规则,优先级高于用户设置,不需要修改工作区配置即可解决:
- 唤出命令面板:Windows/Linux按
Ctrl+Shift+P,macOS按Cmd+Shift+P,执行Preferences: Open User Settings (JSON)打开全局用户配置文件 - 添加如下配置项:
{ "prettier.tabWidth": 4, "prettier.useEditorConfig": false }
- 保存配置后重载VS Code窗口,缩进配置即可生效。
方案2:配置用户级路径专属规则
如果需要保留全局的.editorconfig读取能力,可以针对当前项目的本地路径单独配置规则,所有规则存储在VS Code本地用户目录,不会写入项目文件夹:
- 打开前述的用户设置JSON文件,添加
settings.folderSettings字段,绑定项目路径的专属配置:
{ "prettier.tabWidth": 4, "settings.folderSettings": { // 替换为当前项目在本地的绝对路径 "D:/work/your-project-directory": { "prettier.tabWidth": 4, "prettier.useEditorConfig": false } } }
- 保存后重新打开项目文件夹,配置会自动对该路径下的内容生效。
方案3:使用本地存储的独立工作区文件
上述方案不生效时,可将工作区配置存储在项目目录外的本地位置:
- 打开项目文件夹后,点击菜单栏「文件」-「将工作区另存为」
- 选择项目目录外的本地路径(如个人文档目录、本地配置专用目录)保存
.code-workspace文件,禁止存到项目根目录 - 后续进入项目直接双击该
.code-workspace文件打开即可,此时修改工作区设置只会更新这个本地存储的工作区文件,不会在项目内生成.vscode目录。
注意:只要不把本地存储的.code-workspace文件提交到项目仓库,就完全符合团队的目录管理规则。
内容的提问来源于stack exchange,提问作者manymanymore
相关产品推荐
相关产品推荐

