VS Code终端无法使用nvm的npm版本

时间:2018-05-29 12:03:34

标签: npm terminal visual-studio-code nvm

我在终端上使用nvm并成功安装了节点10.2.1,它也安装了npm 6.1.0。但是,当我转到我的VS Code编辑器时,它会在集成终端中向我发出警告:

npm WARN npm npm does not support Node.js v10.2.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4,6, 7, 8, 9.

事实证明,它实际上是使用npm 5.5.1(npm -v)。

我检查了一下是什么,并尝试进一步挖掘并最终在集成终端和Mac的CLI上使用:which npm

Mac终端显示: /Users/Aiz/.nvm/versions/node/v10.2.1/bin/npm

VS Code的终端显示: /usr/local/bin/npm。这很有意思,因为如果您在此终端中which node,则会生成相应的/Users/Aiz/.nvm/versions/node/v10.2.1/bin/node

我不确定如何让我的VS Code终端通过nvm指向相应的npm安装。不确定是否有帮助,但我检查了npm get prefixnpm -g bin以查找/Users/Aiz/.nvm/versions/node/v10.2.1。我发现的唯一区别是每个终端使用的是npm。

2 个答案:

答案 0 :(得分:1)

我最终查看了GitHub上的VS Code问题,并发现了与NVM和节点问题相关的问题。它解决了我的问题,因为根本原因是相同的。

基本上发生的事情是我之前在使用NVM之前删除了节点的全局安装,但是没有删除我的全局安装的npm。这导致VS Code终端(而不是Mac的终端)发生冲突。为了解决这个问题,你必须找到which npm的符号链接,并以递归方式删除node_modules和npm。

以下是您需要的链接:https://github.com/Microsoft/vscode-docs/blob/master/docs/editor/integrated-terminal.md#why-is-nvm-complaining-about-a-prefix-option-when-the-integrated-terminal-is-launched

不要忘记在重新启动编辑器之后。

答案 1 :(得分:0)

另一个解决方案是实施此方法。 https://medium.com/@kinduff/automatic-version-switch-for-nvm-ff9e00ae67f3

基本上,每次进入shell中的新目录时,nvm都会检查.nvmrc并切换或默认设置。

它确实依赖于zsh。