Visual Studio Code 任务的工作目录

18
Visual Studio Code 任务的工作目录是什么?根据官方文档, 默认应该是工作区目录,即workspaceFolder,但运行一个只执行echo $PWD的任务,它显示workspaceFolder的父目录。换句话说,假设有文件路径为dir1/dir2/.vscode/tasks.json,下面这个简单的任务会输出dir1,而workspaceFolder指的是dir2(实际的工作区目录)。如何才能从workspaceFolder中运行任务?更改cwd选项无济于事。tasks.json:
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "Sample",
            "command": "echo PWD=$PWD workspaceFolder=${workspaceFolder}",
            "options": {
              "cwd": "${workspaceFolder}"
            }
        }
    ]
}

执行输出:

> Executing task: echo PWD=$PWD workspaceFolder=/home/ubuntu/dir1/dir2 <

PWD=/home/ubuntu/dir1 workspaceFolder=/home/ubuntu/dir1/dir2

作为补充说明,我正在使用 Remote - SSH 扩展进行远程开发。


1
我刚刚尝试使用远程SSH连接到VirtualBox Ubuntu,并获得了预期的行为,PWD == Workspacefolder。 - rioV8
4
这可能是我使用的版本存在的错误,因为今天,使用最新版本的VSCode及其扩展,相同的任务配置按预期工作。 - Antonio Fuschetto
即使在您发表评论后很长时间,VSCode仍然存在同样的问题:每当有新版本时,它就会完全崩溃并需要重新启动。 - arvymetal
1个回答

17
{
    "label": "Status",
    "detail": "git status",
    "type": "shell",
    "command": "git status",
    "group": "test",
    "options": {
        "cwd": "${workspaceFolder}/dir1/dir2/dir3/"
    },
    "presentation": {
        "reveal": "always",
        "panel": "new",
        "focus": true
    }
}

我们可以使用"options"键设置任务应在其中执行的工作目录。


2
正如我在描述中所说,这个配置并没有解决问题。然而,在更新了VSCode之后,问题得到了解决,而不需要改变我的 tasks.json 文件。 - Antonio Fuschetto
这帮助我找到了我想要的东西,即在 options 键下设置 "cwd": "${fileDirname}" - hb20007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接