我刚刚安装了Node.js和NPM(节点包管理器)

我安装了NPM以访问其他Node.js模块。

在我安装Node.js和NPM之后,我注意到这两个版本都不可用。

我想知道:如何将Node.js、NPM和我的Node.js模块升级到最新版本?

我需要卸载Node.js和NPM并重新安装最新版本吗?

这是到目前为止我所做尝试的链接。此链接是npm的一部分。


当前回答

如果您正在使用Windows:转到https://nodejs.org/en/download/,下载最新的.exe或.msi文件并安装以覆盖旧版本

如果您使用的是Ubuntu或Linux:首先卸载node.js,然后重新安装,例如使用Ubuntu():

sudo apt-get remove nodejs

# assume node.js 8 is latest version
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs

node -v
npm -v

删除项目文件夹中的node_modules并安装npm,以确保应用程序在新节点和npm版本上运行良好。

其他回答

这里有一个简单的修复方法,适用于那些通过Homebrew安装节点而不使用npm的用户,以及后来使用官方脚本进行npm升级/安装的用户。此方法假定您已按如下方式运行节点安装:

brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

如果以上失败,请从这里开始。删除npm(如果有):

rm -rf ~/.npm-packages/lib/node_modules/npm

下载并解压缩最新版本的npm,当前版本为5.6.0:

cd ~
curl -L https://registry.npmjs.org/npm/-/npm-5.6.0.tgz | tar xz

将解压缩的包移动到node_modules文件夹:

mv ~/package ~/.npm-packages/lib/node_modules/npm

确保~/.bash_profile包含以下条目:

export NPM_PACKAGES="$HOME/.npm-packages"
export NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
export PATH="$NPM_PACKAGES/bin:$PATH"

源文件:

source ~/.bash_profile

验证安装:

npm -v
npm install -g npm@latest

如果已经安装了npm,则可以在终端中运行上述代码来更新节点包管理器。如果你没有npm,你可以使用

sudo apt-get install npm

然后可以通过上述方法更新它

此外,如果要更新到特定版本,请执行以下操作:

sudo npm cache clean -f
sudo npm install -g n
sudo n <specific version>

我已经开发了一个非常简单和快速的包来完成这种更新,atualiza可以处理全局和项目包。稍后,您可以选择最新版本或与当前package.json规则匹配的更大版本。对于全局包,您没有规则,所以atualiza将始终升级到最新版本。

我刚刚在一台新的Windows 7机器上安装了Node.js,结果如下:

> node -v
v0.12.0
> npm -v
2.5.1

然后,我执行了上述步骤:

> npm install -g npm

并升级到v2.7.3。除了做npm,v仍然给出了2.5.1。

我进入系统配置面板,高级设置,环境变量。除了全局PATH变量之外,我还看到了一个特定于用户帐户的PATH变量。前者指向新的npm:C:\Users\PhiLho\AppData\Roaming\npm后者包括到节点的路径:C:\PrgCmdLine\nodejs\(现在,我避免在程序文件和派生文件中安装东西。避免路径中的空格和嘈杂的无用保护是明智的…)如果我执行哪个npm.cmd(我安装了Unix实用程序…),它将指向Node中的一个。

无论如何,修复方法很简单:我只是在主全局路径变量中的节点路径之前复制了第一个路径(到npm),现在它获取了最新版本。<以前的一些东西>;C: \Users\PhiLho\AppData\Roaming\npm;C: \PrgCmdLine\nodejs\

> npm -v
2.7.3

享受。:-)