任务没有获取正确的ruby版本的问题

时间:2018-04-09 17:02:04

标签: ruby visual-studio-code rbenv

这个问题依赖于我正在研究的Ruby项目。 VSCode任务通常不会从正确的rbenv shimmed Ruby版本运行。有时,如果我首先从集成终端手动运行命令,然后运行代码任务,它会选择正确的Ruby。

示例VSCode任务,

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

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

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

1 个答案:

答案 0 :(得分:0)

此答案可以使任务正常运行,但是不能解决VS Code的根本问题。这可能是发布在其GitHub存储库上的问题。

如果您使用的是Mac,此命令将在链接到rbenv版本的路径中放置一个ruby符号链接。 Rbenv(和大多数应用程序)仅更改外壳环境中的路径(.bash_profile仅针对bash更改它)。无论您运行什么shell,此命令都会将其添加到路径中。

ln -s "/Users/$(whoami)/.rbenv/shims/ruby" /usr/local/bin/ruby

我的猜测是VS Code实际上并未使用Shell环境,而是直接调用可执行文件。

相关问题