我一直在使用NVM为我的节点工作安装最新版本的nodeJS . 它适用于安装单独的版本并在它们之间切换 . 它还在每个本地... / bin文件夹中安装最新版本的NPM以及节点二进制文件 . 但是,似乎没有任何方法可以切换我正在使用的NPM版本(或者至少我无法弄明白) .
我能想到的唯一解决方案是删除它默认的二进制文件(这是我第一次使用NVM安装节点时安装的NPM),并取代它放置最新的NPM二进制文件 . 但是,我想知道是否有更好的方法可以做到这一点 .
在第一次提出这个问题三年之后,现在似乎答案简单得多了 . 只需更新nvm安装的版本,该版本位于 ~/.nvm/versions/node/[your-version]/lib/node_modules/npm 中 .
~/.nvm/versions/node/[your-version]/lib/node_modules/npm
我刚刚安装了节点4.2.2,它带有npm 2.14.7,但我想使用npm 3.所以我做了:
cd ~/.nvm/versions/node/v4.2.2/lib npm install npm
简单!
是的,这应该适用于任何模块,而不仅仅是npm,您希望对特定版本的节点“全局” .
编辑1:在最新版本中, npm -g 是智能的,并将模块安装到上面的路径而不是系统全局路径 .
npm -g
编辑2,另外两年和六个Node版本:如a newer answer中所述,现在有一个命令:
nvm现在有一个更新npm的命令 . 这是nvm install-latest-npm或npm install --latest-npm .
感谢 philraj 在评论中指出这一点 .
philraj
nvm不处理npm .
因此,如果要安装节点0.4.x(许多软件包仍然依赖)并使用NPM,您仍然可以使用npm 1.0.x.
安装节点0.6.x(随npm 1.1.x一起提供)并使用npm安装nvm:
npm install nvm . ~/nvm/nvm.sh
使用nvm安装节点0.4.x:
nvm install v0.4.12 nvm use v0.4.12
使用install.sh安装npm(注意 -L param以遵循任何重定向):
-L
curl -L https://npmjs.org/install.sh | sh
这将检测节点0.4.12并在〜/ nvm / v0.4.12 / lib / node_modules文件夹中安装npm 1.0.106并为nvm创建符号链接
~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js
如果你试图运行npm,它仍然会出错,但是如果再次执行 nvm use v0.4.12 ,它现在应该可以运行了 .
nvm use v0.4.12
在基于Linux的操作系统上更改npm版本并不是一个简单的命令过程 . 我已经完成了以下切换回旧版本的npm . 这应该可以使任何版本的npm工作 . 首先安装你想要使用的npm版本:
sudo npm install -g npm@X.X.X
删除/ usr / local / bin /中的sym链接
sudo rm /usr/local/bin/npm
使用您安装的所需版本的npm重新创建sym链接
sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm
npm install npm@x.x.x -g npm install npm@5.4.0 -g
nvm现在有一个更新npm的命令 . 这是 nvm install-latest-npm 或 npm install --latest-npm .
nvm install-latest-npm
npm install --latest-npm
通过查看www.npmjs.com/install.sh,我发现有一种方法可以通过设置环境变量来安装特定版本
export npm_install="2.14.14"
然后按照npmjs.com中的说明运行download-script:
curl -L https://www.npmjs.com/install.sh | sh
如果省略设置 npm_install 变量,那么它将安装标记为 latest 的版本
在Windows中,以管理员身份运行终端(如果存在权限问题) . 然后使用特定的节点版本(比如说7.8.0)
nvm use 7.8.0
然后将你的npm更新为所需的特定版本
npm install -g npm@5.0.3
我在Windows上,我无法使用任何这些东西 . 我不断收到有关文件阻碍的错误 . 这虽然有效:
cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using mv npm npm-old mv npm.cmd npm-old.cmd cd node_modules\ mv npm npm-old cd npm-old\bin node npm-cli.js i -g npm@latest
繁荣,我回来了 .
上述说明略有不同,对我有用 . (MacOS Sierra 10.12.6)
npm install -g npm@3.10.10 rm /usr/local/bin/npm ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm npm --version
npm i -g npm 怎么样?你也尝试过这个吗?
npm i -g npm
10 回答
在第一次提出这个问题三年之后,现在似乎答案简单得多了 . 只需更新nvm安装的版本,该版本位于
~/.nvm/versions/node/[your-version]/lib/node_modules/npm
中 .我刚刚安装了节点4.2.2,它带有npm 2.14.7,但我想使用npm 3.所以我做了:
简单!
是的,这应该适用于任何模块,而不仅仅是npm,您希望对特定版本的节点“全局” .
编辑1:在最新版本中,
npm -g
是智能的,并将模块安装到上面的路径而不是系统全局路径 .编辑2,另外两年和六个Node版本:如a newer answer中所述,现在有一个命令:
感谢
philraj
在评论中指出这一点 .nvm不处理npm .
因此,如果要安装节点0.4.x(许多软件包仍然依赖)并使用NPM,您仍然可以使用npm 1.0.x.
安装节点0.6.x(随npm 1.1.x一起提供)并使用npm安装nvm:
使用nvm安装节点0.4.x:
使用install.sh安装npm(注意
-L
param以遵循任何重定向):这将检测节点0.4.12并在〜/ nvm / v0.4.12 / lib / node_modules文件夹中安装npm 1.0.106并为nvm创建符号链接
如果你试图运行npm,它仍然会出错,但是如果再次执行
nvm use v0.4.12
,它现在应该可以运行了 .在基于Linux的操作系统上更改npm版本并不是一个简单的命令过程 . 我已经完成了以下切换回旧版本的npm . 这应该可以使任何版本的npm工作 . 首先安装你想要使用的npm版本:
删除/ usr / local / bin /中的sym链接
使用您安装的所需版本的npm重新创建sym链接
nvm现在有一个更新npm的命令 . 这是
nvm install-latest-npm
或npm install --latest-npm
.通过查看www.npmjs.com/install.sh,我发现有一种方法可以通过设置环境变量来安装特定版本
export npm_install="2.14.14"
然后按照npmjs.com中的说明运行download-script:
curl -L https://www.npmjs.com/install.sh | sh
如果省略设置 npm_install 变量,那么它将安装标记为 latest 的版本
在Windows中,以管理员身份运行终端(如果存在权限问题) . 然后使用特定的节点版本(比如说7.8.0)
然后将你的npm更新为所需的特定版本
我在Windows上,我无法使用任何这些东西 . 我不断收到有关文件阻碍的错误 . 这虽然有效:
繁荣,我回来了 .
上述说明略有不同,对我有用 . (MacOS Sierra 10.12.6)
npm i -g npm
怎么样?你也尝试过这个吗?