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

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

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

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

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

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


当前回答

为Windows用户升级

Windows用户应阅读npm wiki中的疑难解答>Windows升级。

使用PowerShell在windows 10上升级(第三方编辑)

上面的windows疑难解答#升级链接指向github页面npm windows升级。下面的行是自述文件中的引号。我使用节点v5.7.0和powershell(可能是powershell版本5.0.10586.122)成功地从npm 2.7.4升级到npm 3.9.3

首先,确保您可以通过运行来自提升的PowerShell的以下命令。运行PowerShell作为管理员,单击“开始”,搜索PowerShell,右键单击PowerShell,然后选择以管理员身份运行。

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force    

然后,要安装和使用此升级工具,请运行(也可以从提升的PowerShell或cmd.exe):

npm install --global --production npm-windows-upgrade
npm-windows-upgrade

其他回答

我最近偶然发现了这篇文章:http://martineau.tv/blog/2013/12/more-efficient-grunt-workflows/作者提到了$npm检查更新-u&&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 update

我个人使用nvm(节点版本管理器),这是一个简单的bash脚本来管理多个活动的Node.js版本,您可以同时为不同的用户配置多个版本的节点和全局模块。

您可以查看以下链接:nvm

还有一个windows版本nvm windows

警告:如果您需要从旧版本(在我的例子中是v4.6.0)更新Node,最好从头开始重新安装nodejs(下载链接:https://nodejs.org)否则,npm也会将自己更新到与新Node不兼容的版本(请参阅本讨论)。

这是我在使用npm更新Node(在Windows上)后收到的错误消息

$ npm install -g npm stable
[ . . .]
$ npm 
C:\Users\me\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js:85
      let notifier = require('update-notifier')({pkg})
      ^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supporte
d outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:974:3

新安装后,npm再次工作:

$ npm -v
6.5.0
$ node -v
v10.15.0