Project Manager插件不解析相对路径,仅记录手动输入的rootPath字符串;.code-workspace推荐用相对路径以保障跨设备兼容性;launch.json中cwd需严格匹配folders末级目录名;workspace设置仅对通用配置生效,语言专属设置须放项目内.settings.json。

Project Manager 插件怎么处理相对路径
Project Manager 不解析或管理项目内部的相对路径,它只记录你手动输入的 rootPath 字符串。这个字段可以填相对路径(如 "./backend"),但插件本身不做任何路径校验或自动补全——填错就打不开,也不会报错,只会显示“无法加载项目”。
- 必须确保
rootPath相对于projects.json所在目录有效;默认该文件位于~/.vscode/projects.json,所以写"./my-project"实际指向的是用户主目录下的my-project - 不建议用相对路径,尤其跨设备时容易失效;更稳妥的做法是直接填绝对路径(如
"C:\dev\frontend"或"/home/user/backend") - 如果要用相对路径,得自己维护一个固定位置存放
projects.json,比如放在所有项目的共同父目录下,再统一用"./project-a"这类写法
.code-workspace 文件里的路径为什么必须用相对路径
不是“必须”,而是“推荐”——因为 .code-workspace 中的 folders 路径若用绝对路径,换机器、换用户或共享给同事时大概率失效;相对路径则绑定到 workspace 文件自身位置,迁移成本低。
- 相对路径只对 workspace 文件所在目录生效,例如
my-team.code-workspace放在/Users/me/workspace/,那么"path": "./frontend"就指向/Users/me/workspace/frontend - 不能写成
"path": "../frontend"然后把 workspace 文件丢进子目录里——VSCode 不支持向上越级解析,会提示“文件夹不存在” - 保存后 VSCode 会自动把路径标准化为 Unix 风格斜杠(
/),即使你在 Windows 上写"path": "frontend\src",也会被转成"frontend/src"
多项目共用 launch.json 时 cwd 变量怎么写才不出错
cwd 必须严格匹配 folders 数组中某一项的路径末尾目录名,否则调试器启动失败或找不到可执行文件。
- 假设
.code-workspace中有:"folders": [{"path": "./api"}, {"path": "./web"}],那么launch.json里就得写"cwd": "${workspaceFolder:api}"和"cwd": "${workspaceFolder:web}" - 变量名
api来源于path的最后一级目录名,不是随便起的别名;写成${workspaceFolder:backend}但实际路径是./api,VSCode 就会返回空字符串 - 如果路径含空格或特殊字符(如
"./my project"),变量名会自动转为下划线(my_project),但最好避免这类命名,以防不可预期的转换
为什么 settings 在 .code-workspace 里写了却没生效
因为工作区设置只覆盖“全局生效型”配置项,对语言专属或项目级强依赖的设置无效——它不是继承层,而是独立作用域。
-
"editor.tabSize": 2这类通用设置会生效;但"python.defaultInterpreterPath"必须写在对应项目的.vscode/settings.json里才起作用 -
"files.exclude"是全局行为,一旦在 workspace 层声明,就影响所有已添加的文件夹;而"eslint.workingDirectories"需要按每个子项目路径单独配,不能靠 workspace 统一设 - 检查是否误把
settings块嵌套进了某个folders对象里——它必须在.code-workspace的顶层,和folders并列
${workspaceFolder:xxx} 绑定的是 folders 路径解析结果——三者互不兼容,混用就会掉坑里。


















