在* nix(OSX,Linux等)上升级
您可能需要使用
sudo
前缀这些命令,尤其是在Linux或OS X上,如果您使用其默认安装程序安装了Node
。
您可以使用以下方式升级到最新版本的npm:
npm install -g npm@latest```
或升级到最新的LTS版本:
npm install -g npm@lts
### 在Windows上升级
你可以[你可以从这里下载](https://github.com/felixrieseberg/npm-windows-upgrade)或者跟着如下手册概述操作
默认情况下,`npm`和nodejs一起安装在`C:\Program Files (x86)\nodejs`。
npm的默认安装包(包括潜在的npm本身)分别存储在用户特定的目录中,这是目录(`C:\Users\<username>\AppData\Roaming\npm`),因为安装程序在`PATH`中将`C:\Program Files (x86)\nodejs`放在`C:\Users\<username>\AppData\Roaming\npm`之前,它将始终使用安装了`nodejs`的`npm`版本,而不是你使用`npm -g install npm@<version>`安装的`npm`版本,要解决这个问题,您可以执行以下操作之一
* 选项1:编辑Windows环境变量的PATH路径,将`%appdata%\ npm`放在`%ProgramFiles%\ nodejs`之前。
> 请记住,当您对`PATH`进行更改或如何安装`npm`时,需要重新启动`cmd.exe`(并可能重新启动Windows)。
* 选项2:删除两者
1. `%ProgramFiles%\nodejs\npm`
2. `%ProgramFiles%\nodejs\npm.cmd`
* 选项3:导航到`%ProgramFiles%\ nodejs \ node_modules \ npm`并将`npmrcfile`复制到另一个文件夹或桌面。
然后打开cmd.exe并运行以下命令:
cd %ProgramFiles%\nodejs
npm install npm@latest
###### 如果在`node.js`安装程序中安装了`npm`,执行上述步骤之一后,执行以下操作。
* 选项1或2
进入`%ProgramFiles%\ nodejs \ node_modules \ npm`,并在新的`npm`文件夹中复制名为`npmrc`的文件,该文件夹应为`%appdata%\ npm \ node_modules \ npm`。这将告诉新的`npm`全局安装的软件包。
* 选项3
将`npmrc`文件复制回`%ProgramFiles%\ nodejs \ node_modules \ npm`
>(如果您运行的是Windows 7,并且没有%appdata%\ npm目录,请参阅下面的内容)
运行以下命令查看npm将安装全局包以验证其是否正确
npm config get prefix -g
如果未设置为`<X>:\Users\<user>\AppData\Roaming\npm`,则可以运行以下命令来更正它:
npm config set prefix "${APPDATA}/npm" -g
顺便提一句,如果你希望这个软件包不被安装到你的漫游配置文件中(因为你的共享网络上有一个配额,或是使域名登录或者退出一个域名),你可以把它放在你本地的应用数据中:
npm config set prefix "${LOCALAPPDATA}/npm" -g
...以及将`%APPDATA%\npm`复制到`%LOCALAPPDATA%\npm`(当然更新您的%PATH%)。
### 尝试清除npm缓存
npm cache clean
原文链接:https://github.com/npm/npm/wiki/Troubleshooting#a-brief-note-on-the-built-in-windows-configuration