You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode多根工作区如何获取根目录变量?

VSCode多根工作区任务中如何指代工作区根目录?

我在使用VSCode的多根工作区,希望在myprojects.code-workspace文件中定义任务时,用变量指代工作区根目录。常规.vscode/tasks.json中可使用${workspaceFolder},但在工作区配置文件里创建如下任务:

{
  "label":   "foo",
  "type":    "shell",
  "command": "echo ${workspaceFolder}"
}

执行后输出的是第一个项目的路径:

/home/username/myprojects/project1

而非预期的多根工作区根路径:

/home/username/myprojects

显然${workspaceFolder}不适用,请问是否存在指代多根工作区根目录的变量?


更新说明

为说明需求背景,这是常见的开发者配置:类似单体仓库(monorepo),所有项目同时打开以便操作,但并非真正的单体仓库,目录结构如下:

myprojects/           # 多根工作区的根目录
  .code-workspace     # 包含针对所有项目的任务(因此需要多根工作区的根目录路径)
  project1/
    .git/
    src/
  project2/
    .git/
    src/
  project3/
    .git/
    src/

解决方案

可以使用${workspaceFileDirname}变量,它会直接指向.code-workspace配置文件所在的目录,也就是你需要的多根工作区根路径。

修改后的任务示例:

{
  "label":   "foo",
  "type":    "shell",
  "command": "echo ${workspaceFileDirname}"
}

执行该任务后,就会输出预期的/home/username/myprojects路径。

补充说明:

  • ${workspaceFile}指向的是.code-workspace文件的完整路径,${workspaceFileDirname}是该文件所在的目录,完全匹配多根工作区的根目录需求。
  • 无论你的工作区配置文件名是什么,只要它放在多根工作区的根目录下,这个变量都能正确返回目标路径。

内容的提问来源于stack exchange,提问作者lonix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:00:24