为 tasks.json shell 命令指定路径

Specify path for tasks.json shell command

在 tasks.json 中如何指定 shell 命令的路径?我试过了:

{
  "label": "launch site local (ngserve)",
  "type": "shell",
  "group": "build",
  "command": "C:/Users/me/npm start",
  "problemMatcher": ["$tsc"]
}

因错误退出:

/usr/bin/bash: C:/Users/me/npm: No such file or directory The terminal process terminated with exit code: 127

我意识到命令字符串可以包含多个命令,所以我使用 && 将它们链接起来并做了:

{
  "label": "launch site local (ngserve)",
  "type": "shell",
  "group": "build",
  "command": "cd C:/Users/me && npm start",
  "problemMatcher": ["$tsc"]
}

请注意,此解决方案是默认 shell 特定的(powershell 处理得不好)- 我在 windows 上使用 Git Bash。

您可以通过将选项参数添加到上述任务来更改特定命令的默认值 shell。选项参数如下所示:

将路径更改为gitbashshell位置

  "options": {
    "shell": {
      "executable": "C:\Windows\System32\cmd.exe",
      "args": ["/d", "/c"]
    }