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

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


当前回答

如果Node安装脚本不适合你(不适合我),这里有一个在Debian Jessie中更新Node Js的解决方案,来自Thomas Ward在askubuntu.com的回复(谢谢,伙计!)

1.—新建文件:/etc/apt/sources.list.d/nodesource.list

你需要用sudo创建这个文件,但是当你创建这个文件时,把这个放在里面:

deb https://deb.nodesource.com/node_9.x jessie main
deb-src https://deb.nodesource.com/node_9.x jessie main

然后保存文件。(取代node_9。X与所需版本)

2.—从Nodesource下载存储库的GPG签名密钥。否则,你可能会得到NO_PUBKEY错误apt-get更新:

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

3.—手动执行sudo apt-get update命令。

这将刷新来自节点源回购的数据,以便apt知道存在更新的版本。

如果您得到一个NO_PUBKEY GPG错误,那么返回到步骤2

4.—检查apt-cache policy nodejs的输出。

这不是由脚本完成的,但您希望确保在输出中看到这样的条目:

Version table:
 *** 9.2.0-1nodesource1 0
        500 https://deb.nodesource.com/node_9.x/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status
     0.10.29~dfsg-2 0
        500 http://ftp.debian.org/debian/ jessie/main amd64 Packages

如果您没有看到这样的条目,而只看到0.10.29,请重新开始。否则,继续。

5.—安装nodejs二进制文件。既然你已经确认了。X在你的系统上是可用的,你可以安装它:sudo apt-get install nodejs

Nodejs -v现在应该在输出时显示v9.2或类似版本(只要以v9开头)。现在是版本9)。

其他回答

只是把节点和npm更新到最新版本绑定到我的~/.bash_profile的一个命令中:

update-node(){
  sudo n latest;
  sudo npm install -g npm;
  node --version;
}

这里假设你已经安装了Eldar Djafarov答案中的“n”。 保存到Bash配置文件后,重新打开终端,输入update-node并输入sudo密码:

λ update-node
Password:
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
+ npm@5.3.0
updated 1 package in 7.232s
v8.2.1

我的2 c:

我在Linux Ubuntu 12.04 LTS上尝试了n和nvm,以便将节点从v0.8.25更新到v0.10.22。

第一个任务已经成功完成,但是“which node”命令导致了旧的v0.8.25。 第二个命令成功完成,同样的命令产生了v.0.10.22。

Windows用户只需登录node.js (nodejs.org)网站下载最新版本(截至2017年9月29日为8.6.0)。按照自动安装窗口中的步骤操作,就可以开始了。我刚刚做了,当我在webstorm检查我的最新版本时,它已经在那里了。

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

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

如果您收到以下错误

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

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