任务未选择正确的 ruby​​ 版本的问题

Pel*_*ted 2 ruby rbenv visual-studio-code

这个问题的出现取决于我正在处理的 Ruby 项目。VSCode 任务通常不会从正确的rbenvRuby 版本运行。有时,如果我先从集成终端手动运行命令,然后运行代码任务,它会选择正确的 Ruby。

示例 VSCode 任务,

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run All Tests",
      "type": "shell",
      "command": "bin/rails test",
      "group": "test",
      "presentation": {
        "reveal": "always",
        "panel": "shared"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

当从项目目录(或任何其他方式)启动代码时,如果我运行此任务,它将从系统 ruby​​ 的上下文运行。但是,如果我打开集成终端并输入bin/rails test(有效),然后再次运行该任务,它将在正确的rbenvshimed ruby​​ 上下文中运行。

然而,启动调试器会话确实可以在正确的 Ruby 上下文中工作,所以我真的不明白错过了什么。

小智 5

一种选择是将以下配置添加到 VSCode,settings.json使其启动的 shell 在执行任务之前选择您的 shell 环境。在这里,我正在使用zsh并且我的环境配置为选择正确的 ruby​​,然后任务将识别:

"terminal.integrated.profiles.osx": { "zsh": { "path": "/bin/zsh", "args": ["-l", "-i"] } }
Run Code Online (Sandbox Code Playgroud)