如何更改为旧版本的 Node.js

Posted

技术标签:

【中文标题】如何更改为旧版本的 Node.js【英文标题】:How to change to an older version of Node.js 【发布时间】:2011-12-04 19:43:24 【问题描述】:

我在 Ubuntu 10.10 上运行 Node.js 版本 v0.5.9-pre

我想使用版本v0.5.0-pre

如何回滚到旧版本的节点?

【问题讨论】:

我知道这是一个老问题,但如果有人在使用homebrew,请查看这个问题:***.com/questions/3987683/… 如果您只想在旧版本中测试您的包,值得一提的是node 包,您可以将其安装为本地可执行文件。例如 v12.1:npm i --no-save node@12.1。您可以在./node_modules/node/bin/node . 等当前文件夹上运行它。缺点是您不能/不应该在全局范围内安装它。 【参考方案1】:

*NIX (Linux, OS X, ...)

Use n,一个极其简单的 Node 版本管理器,可以通过 npm 安装。

假设您希望 Node.js v0.10.x 构建 Atom。

npm install -g n   # Install n globally
n 0.10.33          # Install and use v0.10.33
Usage:
n                            # Output versions installed
n latest                     # Install or activate the latest node release
n stable                     # Install or activate the latest stable node release
n <version>                  # Install node <version>
n use <version> [args ...]   # Execute node <version> with [args ...]
n bin <version>              # Output bin path for <version>
n rm <version ...>           # Remove the given version(s)
n --latest                   # Output the latest node version available
n --stable                   # Output the latest stable node version available
n ls                         # Output the versions of node available

 

窗口

使用nvm-windows,类似于nvm,但适用于Windows。下载并运行installer,然后:

nvm install v0.10.33         # Install v0.10.33
nvm use v0.10.33             # Use v0.10.33
Usage:
nvm install [version]        # Download and install [version]
nvm uninstall [version]      # Uninstall [version]
nvm use [version]            # Switch to use [version]
nvm list                     # List installed versions

【讨论】:

nvmw 不再维护 n use vesion 无法全局更改节点版本。只改变了一次。 应编辑此答案以删除 Windows 部分,不再支持 nvmw。任何尝试在 Windows 10 上使用它都会产生“错误:系统无法找到指定的注册表项或值。” 在 Ubuntu 上无法开箱即用。 n 9.6.0 声称它安装了 9.6.0,但 node -v 仍然显示 9.6.1。 我不得不在一个用 AngularJS 1.5 编写的非常古老的网络应用程序上做一些工作。我不知道哪个节点版本可以工作,所以我使用n 玩弄。它使打孔过程非常容易......谢谢!在 Mac (High Sierra) 上完美运行【参考方案2】:

一种方法是使用 NVM,即节点版本管理器。

使用以下命令获取nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

你可以在https://github.com/creationix/nvm找到它

它允许您轻松安装和管理多个版本的节点。这是帮助中的一个 sn-p:

Usage:
nvm install <version>       Download and install a <version>
nvm use <version>           Modify PATH to use <version>
nvm ls                      List versions (installed versions are blue)

【讨论】:

服务器重新启动后,它会取消设置 nvm,我必须告诉它再次开始使用特定版本。即使在设置了nvm alias default v0.5.0 之后你会不会碰巧知道如何让它在重启后保持设置? 这就是我所做的 - 来自文档:“要激活 nvm,您需要从 bash shell 获取它。~/.nvm/nvm.sh 我总是将此行添加到我的 ~/ .bashrc 或 ~/.profile 文件使其在登录时自动获取源。通常我还输入一行以使用特定版本的节点。" 这个对我不起作用。总是接缝在同一个版本上。 github.com/tj/n 对我来说效果更好,更简单。 您也可以在目录中拥有.nvmrc 文件,其中包含您要使用的版本的描述。然后就发nvm use,什么都不在乎 我尝试了很多 nvm,发现它不是很直观。刚刚尝试了下面的 *NIX,并立即能够安装和切换版本而没有错误。【参考方案3】:

更新:更新了答案,因为之前的答案不相关。

按照以下步骤更新您的节点版本。

1.安装 nvm 为此在终端中运行以下命令

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

注意:如果上述命令对您不起作用,您可以选择其他选项进行安装。我已经为这个here添加了答案

2。使用 nvm 安装特定节点版本

本次运行

12.14.1 替换为您的节点版本

nvm install 12.14.1

注意:如果您收到 NVM 无法识别的错误,请运行以下命令,然后再次运行以上命令

source ~/.nvm/nvm.sh

3.将安装的版本设为默认

注意:将 12.14.1 替换为您安装的版本。

nvm alias default 12.14.1

nvm use 12.14.1

4.检查节点版本

node -v

就是这样。干杯!

额外

查看已安装节点版本列表 -- 运行以下命令

nvm ls 

【讨论】:

令人沮丧的是,这并没有改变我的节点版本。 我尝试了这种方法,但没有奏效。起作用的是从“添加或删除程序”快照中卸载节点包。然后,从节点网站下载所需的版本。 我在 Mac 上,在我的情况下,我不需要添加 sudo,所以只需输入 npm install -g node@8.12.0 就可以了 非常感谢!这种方法有助于将node@10.17.0安装到我的项目中,然后让我成功安装Realm@3.4.0。在此之前,我尝试了许多不同的方法,但仍然无法在我的 Windows 上为我的 React-Native 项目安装最新的 Realm。 我已经更新了这个应该可以工作的答案【参考方案4】:

当你可以在没有扩展名的情况下使用任何扩展名时,为什么要使用任何扩展名:)

安装特定版本的节点

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

具体版本:sudo n 4.4.4 而不是sudo n stable

【讨论】:

显然 n 在 Windows 上不受支持。 @HarlanChen 这不是错误。这是一个警告。你可以忽略它。 n 不是扩展名吗?当您执行npm install -g n 时,您正在安装扩展程序... 请忽略sudo 部分。你不应该这样做 @kreig303 你建议我们做什么?在不使用 sudo 的情况下运行它会出现错误“无法创建目录 '/usr/local/n': 权限被拒绝”。我们应该 chmod 那个目录吗?【参考方案5】:

使用package.json - 可维护和便携的方式???????????

让每个项目指定自己的版本

您可以在package.json 中添加node 作为依赖项,并控制用于特定项目的版本。执行package.json“脚本”后,npm(和yarn)将使用该版本而不是全局安装的 Node.js 来运行脚本。

node 包通过为您的本地系统下载node 二进制文件并将其放入node_modules/.bin 目录来完成此操作。

您也可以使用npm(或yarn)包来执行此操作,但您需要专门设置您的PATH 或使用类似npx 的东西来为您处理。


Ubuntu - 官方方式(手动)?

如果您在节点 12 上并想降级到节点 10,只需删除节点并按照所需版本的说明进行操作:

# Remove the version that is currently installed
sudo apt remove -y nodejs

# Setup sources for the version you want
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

# (Re-)Install Node
sudo apt-get install -y nodejs

Windows - 官方方式(手动)?

我发现自己想从最前沿降级到 Windows 上的 LTS。如果您没有使用像 Chocolatey 这样的包管理器或像 nvmn 这样的节点版本管理器,只需下载您想要的版本的 .msi 并安装它。您可能希望通过 Windows 中的“添加或删除程序”工具删除当前安装的版本。

Windows 包管理器 - winget ??

The Open Source Windows Package Manager Way

winget install -e --id OpenJS.Nodejs -v 14.9.0

Chocolatey - 独立包装管理方式?

Chocolatey 有助于轻松更新安装,它是在 Windows 上安装 Node.js 的常用方法。在安装 LTS 版本之前,我必须删除最前沿的版本:

choco uninstall nodejs

choco install nodejs-lts

节点版本管理器 - “去死吧,我会自己做!”方式????????

虽然不是很便携或易于维护,但一些开发人员喜欢手动切换节点的哪个全局版本在任何给定时间点处于活动状态,并认为这样做的官方方式太慢了。有两个流行的 Npm 包提供了有用的 CLI 界面,用于选择(并自动安装)您想要的系统版本:nvmn。使用任何一个都超出了这个答案的范围。

强烈建议不要使用此选项。尽管它很流行,但它是一种反模式,肯定会在未来引起头痛。当然,.nvmrc 存在,但这是在重新发明已经是 Npm 一部分的东西。只需npm i node您想要的版本。

【讨论】:

我从没想过将node 作为(开发)依赖,这太棒了!您只需要npm 就可以安装它。如果您使用节点 10.x 并使用节点 14.x 作为依赖项并需要安装需要构建二进制文件的包,例如node-sass?我想这是这种方法的缺点,对吧? @SilviuBurcea 事实上恰恰相反(或者应该是)!它将使用您指定的那个!假设您在系统上全局安装了一个现代版本的 Node,并带有最新的 Npm。如果你把一些旧版本的Node放在dependencies中,当用npm run ...yarn ...启动一个package.json#script时,本地(旧)Node将放在PATH上,它会old 节点版本中运行!这样一来,通常会破坏旧包的新版本 Node 就不会。 您对 package.json 的提示不起作用,它不会在 node_modules/.bin 中安装节点 @danilo 我认为您这边出了点问题。我刚刚尝试过 (mkdir test; cd test; npm init -y; npm i --save node),现在我在 node_modules/.bin/node 有一个 node 二进制文件。 @CameronTacklind,非常感谢,它成功了!【参考方案6】:

窗口

使用 Chocolately 降级节点

Install Chocolatey. 然后运行:

choco install nodejs.install -version 6.3.0

巧克力有lots of Node versions available。

降级 NPM

npm install -g npm@3.10.3

【讨论】:

对于 linux? :) @noob-fella 它可能可以通过 apt-get 获得;我没试过。 您可以使用 Chocolately 在不同的 Node.js 版本之间即时切换吗?【参考方案7】:

我发现最简单的方法就是使用 nodejs.org 网站:

    转至https://nodejs.org/en/download/releases/ 找到您想要的版本并点击下载 在 mac 上单击 .pkg 可执行文件并按照安装说明进行操作(不确定 Windows 的正确可执行文件是什么) 很高兴您现在使用的是您想要的节点版本

【讨论】:

在 Windows 上:msi 不会降级节点版本。它只是简单的退出。 @Bernard 您是否尝试使用 Windows 的“添加或删除程序”功能删除不需要的版本? 我终于通过各种方式卸载了它,直到系统中没有nodejs的迹象。然后我使用了 nvm,它可以随意切换到任何 nodejs 版本。【参考方案8】:

nvmw 不再维护,但我发现了另一个似乎是最新的来源(截至 17 年 1 月 4 日)。

nvm-windows

它有效。允许我降级到 6.3.1

【讨论】:

【参考方案9】:

另一个管理多个 Node 版本的好库是 N:https://github.com/visionmedia/n

【讨论】:

【参考方案10】:

我有节点版本 6.4.0。

由于我需要旧版本 6.3.0 ,我刚刚在我的系统中再次安装了 6.3.0 版本。节点版本自动降级。

所以,要降级节点版本, 只需安装旧版本的 node js 。它会从更高版本自动降级。

我在 osx 中尝试过。它就像一个魅力。

【讨论】:

【参考方案11】:

在 Windows 7 上,我使用了通用的“卸载 Node.js”(刚开始在搜索左下角的主菜单字段中输入),然后单击指向符合项目的旧版本的链接,例如: Windows 64 位安装程序:https://nodejs.org/dist/v4.4.6/node-v4.4.6-x64.msi

【讨论】:

【参考方案12】:

您需要为此安装 NVM。

适用于 Mac

使用以下命令编辑.bash_profile

nano .bash_profile

并且将以下行添加到.bash_profile

export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh

保存。退出终端并检查魔法。

然后使用以下命令安装所需的版本。

nvm install v14.18.0

如果您想检查系统上已安装的节点版本。使用下面的命令。

nvm ls

如果您想使用已安装节点版本中的特定版本。使用下面的命令

nvm use 12.14.4

【讨论】:

【参考方案13】:

在您的版本号中使用以下命令

nvm install v8.9
nvm alias default  v8.9
nvm use v8.9

【讨论】:

【参考方案14】:

出于某种原因,Brew 将节点 5 安装到名为 node5 的单独目录中。

我为回到版本 5 所采取的步骤是:(您需要查看标准 brew 安装/卸载,否则此过程比看起来更简单。)

    使用 Brew 标准安装方式安装 node5,但还没有 brew 链接。 使用 brew unlink node 和 brew uninstall node 卸载所有其他版本的节点。您可能需要使用 --force 来删除其中一个版本。 在您的计算机上找到地窖文件夹 删除地窖中的节点文件夹。 将 node5 文件夹重命名为 node。 然后,brew链接节点

您应该已经设置好节点 5。

【讨论】:

【参考方案15】:

我找到的最简单的方法 -

    卸载当前版本 从https://nodejs.org/download/release/ 下载所需版本的适当 .msi 安装程序(x64 或 x86)

【讨论】:

【参考方案16】:

如果你喜欢,你已经安装了你想要的节点版本但似乎无法切换到它,试试这个:

    nvm use --delete-prefix &lt;version&gt;。 npm 显示已安装的最新版本,但无法切换到它。如果是这样,这是您将看到的输出:

    You need to run "nvm install v16.2.0

    然后运行:nvm install &lt;type the version you wish to use here&gt;你的输出应该是这样的: Downloading and installing node v16.2.0... Downloading https://nodejs.org/dist/v16.2.0/node-v16.2.0-linux-x64.tar.xz... ####################################################################### 100.0% Computing checksum with sha256sum Checksums matched! Now using node v16.2.0 (npm v7.13.0) Creating default alias: default -&gt; v16.2.0

    你已经完成了!您可以通过运行查看最新版本: node -v

【讨论】:

【参考方案17】:

运行这个:

rm -rf node_modules && npm cache clear && npm install

节点将从缓存的任何内容安装。所以如果你先清除所有内容,然后 NPM 使用 0.10.xx,它会正常恢复。

【讨论】:

这不是在回答 OP 的问题。这是手动删除 npm 依赖项的方法。【参考方案18】:

nvm install 0.5.0#安装之前选择的版本

nvm alias default 0.5.0 #设为默认

nvm use default #使用新的默认作为全局活动版本。

没有最后一个,活动版本不会更改为新的默认值。因此,当您打开新终端或重新启动服务器时,旧的默认版本仍然有效。

【讨论】:

【参考方案19】:

如果你已经为我安装 curl 它的工作,请按照步骤操作

    sudo snap remove curl sudo apt install curl nvm 安装 12.2.0

【讨论】:

以上是关于如何更改为旧版本的 Node.js的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Angular 最新版本更改为旧版本?

Node.jsNode.js的安装

vue.js2.0:如何搭建开发环境及构建项目

Gradle distributionUrl 使用“ionic cordova run android”更改为旧版本,构建失败

Node.js 概述

Node.js概述及编程基础