这个问题依赖于我正在研究的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上下文中运行。
答案 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环境,而是直接调用可执行文件。