所以,我已经安装了Node.js,现在当我试图安装Mongoosejs时,我得到了一个错误,告诉我我没有所需的Node.js版本(我有v0.4.11和v0.4.12是需要的)。

如何升级到这个版本?我想我只是可以用最新版本重新安装它,但我不想在确定文件夹“node”中的项目文件夹不会被删除之前这样做。


当前回答

我来晚了,但在Windows 10/11中,在我的Azure DevOps管道中,我在恢复阶段从PowerShell脚本运行这些命令:

if (!(Test-Path "./$nodeInstaller")) {

    $message = "Downloading node $nodeVersion"
    Write-Output $message

    Invoke-WebRequest "https://nodejs.org/dist/$nodeVersion/$($nodeInstaller)" -OutFile "./$nodeInstaller"
}

# Display node install message
$message = "Installing node $nodeVersion"
Write-Output $message

# Execute MsiExec silently and wait for it to complete.
Start-Process MsiExec.exe -Wait -ArgumentList "/i $($nodeInstaller) /qn /L*v msilog.txt"

在我的例子中,这对于我的一些构建工具(Angular 13 CLI)来说是必要的,因为我使用的容器映像只有旧版本的node。这些命令在构建/恢复管道中也很有帮助,因为我们可以等待安装完成,并在安装失败时捕获一些日志。

其他回答

打开包裹。将node.js项目的Json文件,并将依赖项中指定的版本号替换为*,将获得最新版本。

在你的终端上试试这个:

NVM安装节点——reinstall-packages-from=node

这应该能奏效。

稍后,运行node——version命令检查您拥有的版本。

所有平台(Mac, Linux和Windows) 2023

如果你只是需要将旧版本的Node.js升级到最新版本,而不需要多个版本,只需用新版本覆盖现有的可执行文件。

从nodejs.org/en/download下载最新的Node.js

这很管用!TM适用于所有平台,是最简单/最快的方法。 当你在终端上运行node -v时,你会看到最新的版本。

Mac

如果你最初使用brew安装Node.js,那么运行:

brew upgrade node

管理多个版本的Node.js:

如果你需要在你的机器上运行多个版本的Node.js,例如,如果你有一个针对AWS Lambda上特定版本的旧项目,那么NVM(节点版本管理器)是你的朋友!

步骤1 -获取NVM

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

如果您对安装命令感到好奇,请阅读源代码 ... 它已经被几个node.js安全专家审查过了

步骤2 -安装你需要的node.js版本

一旦你有了NVM,你可以使用NVM命令安装特定版本的Node.js:

nvm install v18.12.1

注意:您可能需要关闭并重新打开终端窗口才能使用nvm命令。

你应该期望在你的终端中看到这样的东西:

Now using node v18.12.1

现在你的机器上有了最新的Node.js。 如果您需要临时切换到不同的/以前的版本,可以使用一个简单的nvm命令来完成。

注意:避免在Node/NPM中使用sudo,因为它违反了最小权限的安全原则

在管理多个Node.js版本时,NVM被认为比N“更好”,因为详细的命令意味着它更容易跟踪你在终端/SSH日志中所做的事情。它被NPM的团队——Node.js世界的创建者/管理者所使用!

对于linux用户如何逐步更新节点版本有很好的解释。 ps类型,而不是sudo n stable sudo n latest接收最新的节点版本。

如果您收到以下错误

错误:模块版本不匹配。预期48,结果46。

你刚刚用下面的命令重建了npm,应该可以修复这个问题。

brew upgrade node

是否升级到最新版本的节点