【问题标题】:How to change node version with nvm如何使用 nvm 更改节点版本
【发布时间】:2019-05-16 01:24:21
【问题描述】:

我正在使用 yeoman 创建一个项目,当我尝试使用 gulp 时,我运行 cmd:gulp serve 一个错误告诉我我需要一个旧版本的节点(8.9.4),我知道我已经安装了最新版本(10.14.1)。

所以我安装了 nvm 来更改节点版本,我必须将其设置为路径 C:\,然后我成功运行:nvm install 8.9.4,当我尝试使用它时:nvm use 8.9.4,它始终是最新版本使用过的

如果我尝试使用 8.10.0,然后运行 ​​node -v 它告诉我访问被拒绝,与任何节点命令相同

【问题讨论】:

  • 尝试在管理cmd中运行

标签: node.js nvm


【解决方案1】:

1) 安装 (可能需要root权限)

nvm install 8.10.0

2) 每个终端使用一次 (可能需要root权限)

nvm use 8.10.0

3) 设置为所有终端的默认设置 (可能需要root权限)

nvm alias default 8.10.0

4) 附加信息

  • 查看nvm documentation了解更多信息

  • 您可能还需要为您的 IDE 指定节点版本:

【讨论】:

    【解决方案2】:

    切换到特定的 Node.js 版本

    nvm use 8.10.0  
    

    切换到最新的 Node.js 版本:

    nvm use node  
    

    切换到最新的 LTS 版本:

    nvm use --lts  
    

    你可以通过运行查看你安装了哪些版本:

    nvm ls  
    

    左边有箭头的绿色条目是当前使用的版本

    根据每个项目指定节点版本

    诸如 rbenv 之类的版本管理器允许您在每个项目的基础上指定一个 Ruby 版本(通过将该版本写入当前目录中的 .ruby-version 文件)。这在 nvm 中是可能的,如果您在项目中创建 .nvmrc 文件并指定版本号,则可以 cd 进入项目目录并键入 nvm use。然后,nvm 将读取 .nvmrc 文件的内容并使用您指定的任何 Node 版本。

    如果自动发生这对您很重要,项目主页上有几个 sn-ps 供您添加到 .bashrc.zshrc 文件来实现这一点。

    这是 ZSH sn-p。将其放在您的 nvm 配置下方:

        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 版本。

    【讨论】:

      【解决方案3】:

      你需要使用

      nvm use 8.10.0
      

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

      【讨论】:

      • 我尝试使用 8.10.0,然后当我运行 node -v 时它告诉我访问被拒绝,与任何节点命令相同
      • 在提升权限的情况下使用它。以管理员身份运行 cmd
      • 在 cmd.exe 中执行 where node 转到文件夹并尝试以提升的权限在那里执行。我认为这要么是权限问题,要么您可能有另一个 nvm 无法更改的节点安装。
      • 是否需要管理员权限才能使其“坚持”?因为它在没有 root 的情况下运行良好,但是下次我打开 shell 时它会恢复到旧版本
      • @Michael tail -n2 ~/.bashrc nvm use v14.18.2 您可以将上述行添加到您的 .bashrc 中,并且每次登录都会在本地设置
      猜你喜欢
      • 2021-02-28
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2018-11-08
      • 2012-04-03
      • 1970-01-01
      相关资源
      最近更新 更多