如何用 nvm 更改 Node.js 版本

我正在使用 文书创建一个项目。当我尝试使用 Gulp.js时,我运行命令 gulp serve。一个错误告诉我需要旧版本的 Node.js (8.9.4) ,因为我已经安装了最新版本(10.14.1)。

因此,我安装了 nvm 来更改 Node.js 版本。我必须将它设置为路径 C:\,然后我运行成功: nvm install 8.9.4。当我尝试使用它时,nvm use 8.9.4总是使用最新的版本:

Enter image description here

如果我尝试使用8.10.0,然后运行 node -v,它会告诉我拒绝访问,对任何 Node.js 命令都是一样的。

368449 次浏览

nvm install 8.10.0用于在本地安装建议的节点版本。

为了使用它:

nvm use 8.10.0

请注意,您需要以管理员身份运行此命令。

您总是可以设置默认的 Node.js 版本:

nvm alias default 8.10.0
  1. 安装

    nvm install 8.10.0
    
  2. 每个终端使用一次

    nvm use 8.10.0
    
  3. 设置为所有终端的默认值

    nvm alias default 8.10.0
    
  4. 附加信息

    • 有关更多信息,请查看 Nvm 文档

    • 您还可能需要为 IDE 指定一个 Node.js 版本:

      Enter image description here

切换到特定的 Node.js 版本

nvm use 8.10.0

切换到最新的 Node.js 版本

nvm use node

切换到最新的 LTS 版本

nvm use --lts

您可以通过运行以下命令来检查已安装的版本:

nvm ls

绿色的条目(左边有一个箭头)是正在使用的当前版本。

在每个项目的基础上指定 Node.js 版本

版本管理器,例如 RBEnv,允许你在每个项目的基础上指定一个 Ruby 版本(通过将该版本写入到工作目录中的 。红宝石版本文件中)。对于 nvm,这是可能的,因为如果在项目中创建一个 。 nvmrc文件并指定一个版本号,那么可以在项目目录中输入 一个 href = “ https://en.wikipedia.org/wiki/Cd _ (command)”rel = “ nofollow norefrer”> cd 并键入 nvm use。然后,nvm 将读取 。 nvmrc文件的内容,并使用您指定的任何版本的 Node.js。

如果自动发生这种情况对您来说很重要,那么在项目的主页上有几个代码片段,您可以将其添加到 译自: 美国《科学》杂志网站(http://en.wikipedia.org/wiki/Bash _ (Unix _ shell))原文地址: http://en.wikipedia.org/wiki/Bash _ (Unix _ shell)原文地址: http://en.wikipedia.org/wiki/Bash _ (Unix _ shell)原文地址: http://en.wikipedia.org/wiki/Bash _。 zhrc文件中以实现此目的。

下面是 Z 弹(可执行 zsh)代码片段:

    autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"


if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")


if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$node_version" ]; then
nvm use
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

当您切换到一个包含 。 nvmrc文件的目录时,您的 shell 将自动更改 Node.js 版本。

确保你以系统管理员的身份运行你的终端

nvm use <version> # This should work fine

没有这个特权,我得到了这个错误:

nvm use 16.14.0

产出:

exit status 5: Access is denied.

您需要编辑 译自: 美国《科学》杂志网站(http://en.wikipedia.org/wiki/Bash _ (Unix _ shell))原文地址: http://en.wikipedia.org/wiki/Bash _ (Unix _ shell)原文地址: http://en.wikipedia.org/wiki/Bash _ (Unix _ shell)原文地址: http://en.wikipedia.org/wiki/Bash _文件。

将下面的代码添加到该文件中。将版本更改为您的首选版本。

您可能在该文件中已经存在类似的内容,这会导致更改返回到您以前的版本。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
export PATH="/home/zentech/.local/bin:/home/zentech/.nvm/versions/node/v14.18.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"