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

VS Code terminal fails to use npm version from nvm

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

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)。

我查看了它是怎么回事,并试图进一步挖掘并最终使用:which npm 在集成终端和 Mac 的 CLI 上。

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 的位置。

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

基本上发生的事情是我在使用 NVM 之前删除了 node 的全局安装,但没有删除我的 npm 全局安装。这在 VS Code 的终端(而不是 Mac 的终端)中引起了冲突。为了解决这个问题,您基本上必须找到 which npm 的 symlink 并删除递归关联的 node_modules 和 npm。

这是您需要的link: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

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

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

基本上,每次您转到 shell 中的新目录时,nvm 都会检查 .nvmrc 并切换或默认。

它确实依赖于 zsh。

我在 Ubuntu 上的修复:

A.) sudo apt-get remove nodejs npm

B.) 删除了我的 .bashrc 中将 npm 包目录添加到路径的行。

C.) 重启 VS Code。

我怀疑步骤 A 是否必要。但是B和C肯定是。