【问题标题】:如何使用 NVM 设置默认节点版本?
【发布时间】:2018-04-21 19:09:59
【问题描述】:

我已经安装了具有两个节点版本的 nvm(带有 zsh shell 的 ubuntu):v6.11.5v9.0.0,并且 nvm 中的默认版本是 v9.0.0

每次我需要更改节点版本时

$ nvm list
         v6.11.5
->       v9.0.0
         system
default -> node (-> v9.0.0)
node -> stable (-> v9.0.0) (default)
stable -> 9.0 (-> v9.0.0) (default)


$ nvm v6

如何更改 nvm 版本默认值以定义 v6.11.5

【问题讨论】:

    标签: node.js version nvm


    【解决方案1】:

    (这里是 nvm 维护者)

    nvm alias default 6.11.5 如果您希望它与该特定版本挂钩。

    你也可以nvm alias default 16

    无论哪种方式,您都需要升级到最新版本的 nvm(撰写本文时为 v0.33.11)

    【讨论】:

    • 添加:只要您不安装新版本,别名就可以工作。安装新节点后,该节点将成为您当前要使用的节点。因此,如果您想防止这种行为,您必须在每次安装后显式设置 nvm 别名 default desiredVersionOfNode 或重新打开终端。
    • 使用nvm alias default node 将“最新”设为默认值。
    • nvm alias default 不会做任何事情。 “默认”标签发生了变化,但新的 shell 仍在使用非期望版本。我发现卸载不需要的版本是可行的。
    • nvm alias default node 使用您计算机上安装的最新版本的 Node。请记住在第一个命令之后使用nvm use node(或您想要使用的任何 Node 版本)来实际更改版本。我的示例(我使用版本 13 作为默认版本,但在机器上有 15 并希望将默认设置为最新版本的 Node):nvm alias default nodenvm use node 就像使用(在我的情况下):nvm alias default 15nvm use 15
    • 可能只想使用最新的长期稳定版本。 nvm alias default lts/*
    【解决方案2】:

    假设要将默认版本设为 10.19.0。

    nvm alias default v10.19.0
    

    但它会给出以下错误

    ! WARNING: Version 'v10.19.0' does not exist.
    default -> v10.19.0 (-> N/A)
    

    在这种情况下,您需要按以下顺序运行两个命令

    # Install the version that you would like 
    nvm install 10.19.0
    
    # Set 10.19.0 (or another version) as default
    nvm alias default 10.19.0
    

    【讨论】:

    • nvm 别名默认 10.19.0 没有“v”
    【解决方案3】:

    这会将默认设置为节点的最新版本

    nvm alias default node
    

    然后你需要运行

    nvm use default
    

    或退出并打开一个新标签

    【讨论】:

    • 询问节点 6,您的解决方案将选择要使用的最后一个节点稳定版本。所以它不会使用特定的 6 版本
    • 尽管这非常有用,但这根本不能回答问题。
    • 这给了我一条消息“您的用户的 .npmrc 文件 (${HOME}/.npmrc) 具有 globalconfig 和/或 prefix 设置,它们与 nvm 不兼容。运行 @ 987654325@ 取消设置。”我最终运行了建议的命令并且它起作用了。
    • Yours 是第一个告诉我运行 nvm use default 的答案,这是我所缺少的。
    【解决方案4】:

    使用nvm alias default 10.15.3 * 更改默认节点版本

    (将我的版本替换为您的默认版本号)

    您可以使用nvm list检查您的默认列表

    【讨论】:

      【解决方案5】:

      你也可以这样:

      $ nvm alias default lts/fermium
      

      【讨论】:

      • 有没有办法定位到最新版本?例如nvm alias default lts/latest?
      • 试试nvm alias default lts/*
      【解决方案6】:

      #100% 为我工作 遵循此默认节点版本:

      nvm 安装 12.13.1 然后, nvm别名默认12.13.1

      【讨论】:

        【解决方案7】:

        如果你只想切换一次使用这个

        nvm use 12.x
        

        如果要切换默认节点版本,则使用

        nvm use default 12.x or nvm alias default 12.x
        

        【讨论】:

          【解决方案8】:

          当前的答案并没有为我解决问题,因为我在 /usr/bin/node 和 /usr/local/bin/node 中安装了节点 - 所以系统总是首先解决这些问题,并忽略了 nvm 版本。

          我通过将现有版本移动到 /usr/bin/node-system 和 /usr/local/bin/node-system 解决了这个问题

          然后我没有节点命令了,直到我使用 nvm use :(

          我通过创建指向将由 nvm 安装的版本的符号链接解决了这个问题。

          sudo mv /usr/local/bin/node /usr/local/bin/node-system    
          sudo mv /usr/bin/node /usr/bin/node-system 
          nvm use node
            Now using node v12.20.1 (npm v6.14.10)
          which node
            /home/paul/.nvm/versions/node/v12.20.1/bin/node
          sudo ln -s /home/paul/.nvm/versions/node/v12.20.1/bin/node /usr/bin/node
          

          然后打开一个新的shell

          node -v
            v12.20.1
          

          【讨论】:

            【解决方案9】:

            警告:此答案仅适用于 MacOS

            假设您的 nvm 中有两个版本的 nodeJS,即 v13.10.1v15.4.0

            而且, v15.4.0 是默认的

            > nvm list
                   v13.10.1
            ->      v15.4.0
                     system
            default -> 15.4.0 (-> v15.4.0)
            

            而且,您想将默认设置切换为 v13.10.1

            在您的 Mac 终端上按照以下步骤操作:

            1. 运行命令:

              nvm 别名默认 13.10.1

            这将使默认指向 v13.10.1 为...

            default -> 13.10.1 (-> v13.10.1)
            
            1. 打开终端的新实例。现在在这里检查节点版本...

            节点-v

            你会得到...

            v13.10.1
            
            1. nvm 列表也会显示新的默认版本。

              非虚拟机列表

            只是一个信息: 上面示例中的 NodeJS 版本将具有不同的 npm 版本。您可以通过运行在终端中交叉验证它 npm -v

            【讨论】:

              【解决方案10】:

              我尝试了最受好评的答案,但对我不起作用。 问题是我通过 brew 安装了另一个节点,NVM 将其识别为系统节点。 NVM 将系统节点优先于默认别名。 我所要做的就是卸载系统节点 (brew uninstall node)。

              【讨论】:

              • 我在 WSL 上也是如此。我没有 brew 所以我使用了“sudo apt-get purge --auto-remove nodejs”
              【解决方案11】:

              更改默认版本以使用最新的 LTS 版本 nvm alias default lts/*

              如果您想让您的版本保持最新,您可以通过 nvm install lts/* --reinstall-packages-from=lts/* 或每周的 cron 作业手动升级全局版本

              --reinstall-packages-from=lts/* 用于在您每次更改版本时重新安装全局包

              【讨论】:

                【解决方案12】:

                nvm alias default 16(其中“16”是您要使用的版本)但如果您是从https://nodejs.org/en/download/ 安装节点,我建议您先将其删除。对于 m1 或 m1 pro 芯片,我建议你按照这个解决方案:https://www.youtube.com/watch?v=fULL8QiPEU4

                【讨论】:

                  【解决方案13】:

                  对于那些在 VSCode 终端中测试并且即使在终止/重新启动终端后仍然看到旧版本的人 - VS 代码以某种方式缓存旧版本。关闭/重新打开完整的 VSCode 窗口,您应该会看到带有 node -v 的正确版本。

                  【讨论】:

                    【解决方案14】:

                    我在运行nvm install --lts 后做了类似的事情:

                    nvm alias default 'lts/*'
                    

                    【讨论】:

                      猜你喜欢
                      • 2020-03-15
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2015-12-06
                      • 1970-01-01
                      • 2023-01-24
                      • 2019-05-16
                      • 2019-03-04
                      相关资源
                      最近更新 更多