如何为VS Code的集成终端设置节点版本?

时间:2018-03-29 01:24:12

标签: node.js visual-studio-code

不,这不是一个重复的问题。我已经阅读了有关VS代码的文档以及有关堆栈溢出的其他帖子。这个问题仍然存在......

我可以用nvm设置节点版本,但VS代码中的终端恢复到7.6.0,这有纱线问题!

编辑: [在VS代码之外的zsh添加调试信息]

λ  ~  which node                                                     
/Users/Freddy/.nvm/versions/node/v9.6.1/bin/node
λ  ~  node -v                                                                      
v9.6.1
λ  ~  nvm --version                                                                
0.33.8

我使用nvm来管理我的不同版本的节点,除了VS代码之外,它完全正常。

在VS Code终端中,节点版本始终恢复为v7.6.0:

node -v                                                             
v7.6.0

λ  ~/auth0-profile  nvm use default                                                     
Now using node v9.6.1 (npm v5.6.0)

λ  ~/auth0-profile  node -v     

v7.6.0

λ  ~/auth0-profile  nvm current                                                         
system

λ  ~/auth0-profile  nvm ls                                                              
         v8.9.4
        v8.10.0
         v9.6.1
->       system
default -> 8.10.0 (-> v8.10.0)
system -> 9.6.1 (-> v9.6.1)
node -> stable (-> v9.6.1) (default)
stable -> 9.6 (-> v9.6.1) (default)
iojs -> N/A (default)

即使我将节点设置为使用版本v9.6.1,它也会恢复为7.6,这会导致纱线出现问题。我不知道为什么nvm current会导致“系统”显示系统为9.6.1,但node -v仍显示7.6.0。

有什么想法吗?

EDIT2: [根据vscode上的文档,我在launch.json中设置运行时版本,但这不起作用]

我发现如果我在vscode中从终端运行which node,它会返回/usr/local/bin/node。为了解决这个问题,我尝试将launch.json文件中的运行时可执行文件设置为.nvm目录"~/.nvm/versions/node/v8.10.0/bin"中的可执行文件,但我仍然没有成功。

2 个答案:

答案 0 :(得分:1)

Visual Studio Code to use node version specified by NVM

我遇到了同样的问题,但是“ nvm使用默认值”和“ nvm别名...”之类的答案无济于事。

显然,当我使用zsh时,osx的默认shellArgs设置为bash。我通过将用户设置中的shellArgs设置为一个空数组来解决了这个问题:

“ terminal.integrated.shellArgs.osx”:[]

答案 1 :(得分:0)

我还不能发表评论,所以我会尝试从这里帮助你。我和你一样苦苦挣扎,找到了解决方案。我发布了一个答案here,也许它可以帮助你了解其中提到的资源。我不是使用zsh而是使用bash,但要使它适应你的"配置文件并不是很难。