How can I change the version of npm using nvm?
Emily Wong
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.
418 Answers
EDIT: several years since this question was first answered, 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-npmornvm 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
Below are previous revisions of the correct answer to this question.
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 npmEasy!
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.
Thanks @philraj for pointing this out in a comment.
11npm install npm@x.x.x -g
npm install npm@5.4.0 -g 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.shInstall node 0.4.x with nvm:
nvm install v0.4.12
nvm use v0.4.12Install npm using install.sh (note the -L param to follow any redirects):
curl -L | shThis 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.jsIf 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.
nvm now has a command to update npm. It's nvm install-latest-npm or npm install --latest-npm.
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
cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using
rm npm-old
rm npm-old.cmd
cd node_modules\
rm -rf npm-oldAnd boom, I'm back in business.
7In 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.0then update your npm to desired specific version by
npm install -g npm@5.0.3 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.XRemove the sym link in /usr/local/bin/
sudo rm /usr/local/bin/npmRecreate 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 3 - find the node and npm version you want to use from here
nvm use 8.11.4- you already got the npm 5.6 with node 8.11.4
Just go with nvm use node_version
By looking at 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 | sh
If you omit setting the npm_install variable, then it will install the the version they have marked as latest
1We can easily solve this using n.
To install n
>> npm install -g nTo switch versions
>> n latestTo switch to particular version
>> n 10.16.0 What about npm i -g npm? Did you try to run this as well?
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 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.
The easy way to change version is first to check your available version usingnvm lsthen select version from the listnvm use version
For some reason npm install -g npm@X.X.X didn't work, so I've changed version of npm in package.json in npm folder
➜ ~ which npm
/opt/homebrew/bin/npmand then run
npm install npmmacOS 11.2.2, M1 (arm64)
In my case I updated npm from version 6 to 8 in a node environment set to version 10 by nvm. This resulted in npm not working anymore, rendering the answers I found here useless.
I finally resorted to clearing the nvm folder:
rm -rf ~/.nvm/versions/node/*Afterwards I could work with nvm and npm again. My lesson: Never install a fresh npm version with npm. nvm install-latest-npm seems to let you safely update within legacy environments.
NVM Installation & usage on Windows
Below are the steps for NVM Installation on Windows:
NVM stands for node version manager, which will help to switch the your node versions for specific use. It also allows the user to work with multiple npm and node versions.
Install nvm setup. Use command "nvm list" to check list ofinstalled node version. Type "nvm use version number[6.9.3]" to switch versions. For more info
You can install two versions of node using nvm, and install different version of npm on each node environment.
For example, nvm install 14.18.0 and nvm install 14.18.1 will install two separate node environments.
In 14.18.0, you can use npm v6 (installed by default).
In 14.18.1, you can use npm v7 (install with npm install -g npm@7).
This way you can switch different npm version without pain.
high@highs-MacBook-Pro / % nvm use 14.18.0
Now using node v14.18.0 (npm v6.14.15)
high@highs-MacBook-Pro / % nvm use 14.18.1
Now using node v14.18.1 (npm v7.24.2)