可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I've been using NVM to install the latest versions of nodeJS for my node work. It works totally fine for installing separate versions and switching between them. It also installs the latest version of NPM within each local .../bin folder along with the node binary. However, there doesn't seem to be any way to switch the version of NPM that I'm using (or at least I can't figure it out).
The only solution I can think of myself is to delete the binary that it's defaulting to (which is the NPM that was installed when I first installed node with NVM), and in its place to put the latest NPM binary. However, I'm wondering if there are any better ways to go about doing this.
回答1:
Over three years after this question was first asked, it seems like the answer is much simpler now. Just update the version that nvm installed, which lives in ~/.nvm/versions/node/[your-version]/lib/node_modules/npm
.
I just installed node 4.2.2, which comes with npm 2.14.7, but I want to use npm 3. So I did:
cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm
Easy!
And yes, this should work for any module, not just npm, that you want to be "global" for a specific version of node.
EDIT 1: In the newest version, npm -g
is smart and installs modules into the path above instead of the system global path.
EDIT 2, another two years and six Node versions later: as noted in a newer answer, there is now a command for this:
nvm now has a command to update npm. It's nvm install-latest-npm
or nvm install --latest-npm
.
nvm install-latest-npm
: Attempt to upgrade to the latest working npm
on the current node version
nvm install --latest-npm
: After installing, attempt to upgrade to the latest working npm on the given node version
Thanks @philraj for pointing this out in a comment.
回答2:
nvm doesn't handle npm.
So if you want to install node 0.4.x (which many packages still depend on) and use NPM, you can still use npm 1.0.x.
Install node 0.6.x (which comes with npm 1.1.x) and install nvm with npm:
npm install nvm
. ~/nvm/nvm.sh
Install node 0.4.x with nvm:
nvm install v0.4.12
nvm use v0.4.12
Install npm using install.sh (note the -L
param to follow any redirects):
curl -L https://npmjs.org/install.sh | sh
This will detect node 0.4.12 and install npm 1.0.106 in your ~/nvm/v0.4.12/lib/node_modules folder and create symlink for nvm
~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js
If you try to run npm, it will still give an error but if you do nvm use v0.4.12
again, it should now work.
回答3:
nvm now has a command to update npm. It's nvm install-latest-npm
or npm install --latest-npm
.
回答4:
Changing npm versions on linux based OSs isn't a straight forward one command process yet. I have done following to switch back to older version of npm. This should work to get any version of npm working. First install the version of npm you want to use:
sudo npm install -g npm@X.X.X
Remove the sym link in /usr/local/bin/
sudo rm /usr/local/bin/npm
Recreate the sym link using the desired version of npm you have installed
sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm
回答5:
npm install npm@x.x.x -g
npm install npm@5.4.0 -g
回答6:
By looking at www.npmjs.com/install.sh I found there is a way to install a specific version by setting an environment-variable
export npm_install="2.14.14"
Then run the download-script as described at npmjs.com:
curl -L https://www.npmjs.com/install.sh | sh
If you omit setting the npm_install variable, then it will install the the version they have marked as latest
回答7:
In windows, run your terminal as admin (in case there are permission issues as I had). Then use a specific node version (say 7.8.0) by
nvm use 7.8.0
then update your npm to desired specific version by
npm install -g npm@5.0.3
回答8:
I'm on Windows and I couldn't get any of this stuff to work. I kept getting errors about files being in the way. This worked though:
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
And boom, I'm back in business.
回答9:
Slight variation on the above instructions, worked for me. (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
回答10:
What about npm i -g npm
? Did you try to run this as well?
回答11:
I had same issue after installing nvm-windows
on top of existing Node installation. Solution was just to follow the instructions:
You should also delete the existing npm install location (e.g.
"C:\Users\AppData\Roaming\npm") so that the nvm install location
will be correctly used instead.
Installation & Upgrades