I just installed Node.js
and npm
(for additional modules).
How can I update Node.js and the modules which I’m using to the latest versions?
Can npm
do it, or do I have to remove and reinstall Node.js and npm to get the next versions?
I followed this steps in the npm
section.
8
55 Answers
See the docs for the update
command:
npm update [-g] [<pkg>...]
This command will update all the packages listed to the latest version (specified by the tag config), respecting semver.
Additionally, see the documentation on Node.js and NPM installation and Upgrading NPM.
The following original answer is from the old FAQ that no longer exists, but should work for Linux and Mac:
How do I update npm?
npm install -g npm
Please note that this command will remove your current version of npm. Make sure to use
sudo npm install -g npm
if on a Mac.You can also update all outdated local packages by doing
npm update
without any arguments, or global packages by doingnpm update -g
.Occasionally, the version of npm will progress such that the current version cannot be properly installed with the version that you have installed already. (Consider, if there is ever a bug in the update command.) In those cases, you can do this:
curl https://www.npmjs.com/install.sh | sh
To update Node.js itself, I recommend you use nvm, the Node Version Manager.
26
npm update npm -g
didn’t work for me on windows – it completed without output but npm remained the same version (1.3.11 when the most recent version is 1.3.14)– B Talso have curl follow redirects with -L
curl -L https://npmjs.org/install.sh | sudo sh
– AndyLI did it like you said
npm update npm -g
and now I don’t have npm as a command.Using npm to install a new version of itself. I smell things blowing up.
DON’T use sudo npm install -g npm! This will uninstall it!
– chris123
I found this really neat way of updating node on David Walsh’s blog, you can do it by installing n
:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
It will install the current stable version of node
.
EDIT: Please don’t use n anymore. I recommend using nvm
. You can simply install stable by following the commands below:
nvm ls-remote
nvm install <version>
nvm use <version>
13
Refuses to run for windows x64 (but does with win32 apparently). That’s not in keeping with the Node.js project.
– rainabbaNot supported for Windows. I realize it would be easier to just use Linux, but at work, I am not free to choose my OS. As @rainabba says, the spirit of the Node.js project is to be cross-platform, and this isn’t.
In Windows, you can simply download the newest version of node and install it. It’ll upgrade both node and npm.
Why did you said ‘Please don’t use n anymore’ ? Any particular reason ?
I do not know why David Walsh said
n
was unstable at the time, but that blog was from six years ago andn
is still being maintained. Repeating other commenters,n
does not run on Windows. And neither doesnvm
.
Updating npm is easy:
npm install [email protected] -g
8
Using windows 10 and node v5.7.0 the command
npm install [email protected] -g
failed to upgrade from npm 2.7.4 to npm 3.9.3.Thanks this worked for me, its pretty simple. But i had to
sudo npm install [email protected] -g
thats all. UpvotedThis is also the official answer: docs.npmjs.com/getting-started/installing-node
its soo simple thank you. it worked for me straight away 🙂 Many of the others did not work for me as well.
– læran91
I understand this question is for Linux machine but just in case anybody is looking for a Windows solution, just go to the Node.js site, click the download button on the homepage and execute the installer program.
Thankfully it took care of everything and with a few clicks of ‘Next’ button I got the latest 0.8.15 Node.js version running on my Windows 7 machine.
6
yeah. this worked for me. Im on windows. the
n
method didnt work. wish there was a better way of doing it.– AlexisThis is the best and easiest way to upgrade node on windows. worked for me just fine. Thanks anmol
– peterif you’re updating from npm v1.x to 2.x on Windows, you may have delete ‘npm’, ‘npm.cmd’ files from “C:Program Filesnodejs” after installing or udpating npm. See: escapologist.wordpress.com/2014/09/29/…
Don’t forget to reboot afterwards!
This works with Windows 10, and both Node and npm update. Very slick.
As you may already know, npm is currently bundled with node.js. It means that if you have installed node.js, you’ve already installed npm as well.
Also, pay attention to the node.js and npm release versions table that shows us approximate versions compatibility. Sometimes, versions discrepancy may cause incompatibility errors.
So, if you’re a developer, it’s kinda “best practice” to manage your development environment using one of the node.js version managers.
Here is a list and usage notes of some of the most popular:
Homebrew (macOS)
If you’re on macOS, you can use Homebrew.
Actually, it’s not just a node.js version manager.
To install Homebrew to your Mac:
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
To install node.js and npm using Homebrew, run:
$ brew install node
Later, you will be able to update them using:
$ brew update && brew upgrade node
Also, you can switch between node.js versions as well:
$ brew switch node 0.10.26
npm will be upgraded/downgraded automatically.
n (macOS, Linux)
n is most likely to rvm (Ruby Version Manager), and is used to manage node.js and npm versions simultaneously. It is written on pure Linux shell, and available as an npm module. So, if you already have any node.js version installed, you can install/update the n package through npm
:
$ npm install -g n
Downloading, installing and switching to node.js and npm versions is as easy as:
$ n 0.10.26
$ n 0.8.17
$ n 0.9.6
To download, install, and switch to the latest official release, use:
$ n latest
To download, install, and switch to the latest stable official release, use:
$ n stable
To switch to the previously active version (aka $ cd -
), use:
$ n prev
If you want to see the list of installed node.js versions, just run n
from your command line. The output will be something like the following:
$ n
0.10.26
• 0.8.17
0.9.6
Where the dot (•) means that it’s a currently active version. To select another node.js version from the list, use Up
/Down
arrow keys and activate using the Enter
key.
To list the versions available to install:
$ n lsr
nvm (macOS, Linux)
nvm is also like rvm, even the command names and usage are very similar.
To install nvm you can use the installation script (requires git
) using cURL
:
$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
or wget
:
$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh
To download and install a specific node.js and npm version, use:
$ nvm install 0.10
Then, you can switch to the installed version, using:
$ nvm use 0.10
Also, you can create the .nvmrc
file containing the version number, then switch to the specified version using the following command:
$ nvm use
To see the list of installed node.js versions, use:
$ nvm ls
To list the versions available to install:
$ nvm ls-remote
nvm-windows (Windows)
nvm-windows is a node.js version management utility for Windows, ironically written in Go.
It is not the same thing as nvm. However, the usage as a node.js version manager is very similar.
To install nvm-windows, it is required to uninstall any existing versions of node.js and npm beforehand. Then, download and run the latest installer from releases.
To upgrade nvm-windows, run the new installer. It will safely overwrite the files it needs to update without touching your node.js installations.
nvm-windows runs in an Admin shell. You’ll need to start Powershell or Command Prompt as Administrator to use nvm-windows.
Before using, you may also need to enable nvm-windows with the following command:
C:> nvm on
To download and install a specific node.js and npm version, use:
C:> nvm install 0.12
Then, you can switch to the installed version, using:
C:> nvm use 0.12
If you want to see the list of installed node.js versions, use:
C:> nvm list
To list the versions available to install:
C:> nvm list available
4
I like this answer. +1 ! But it would have been even more useful to accompany it with some sort of explanation about the different package managers. Ie; why I should use one over the other. I would really help to give context..
– 7wpwith command “brew update && brew upgrade node” , npm doesn’t get updated to latest version as mentioned “…NPM will be updated as well..”
– vikramviI generally like homebrew but the fact it requires an update before I can upgrade
npm
on it is painfully slow…can you please explain “npm will be upgraded/downgraded automatically.” which command does this ?
– vikramvi
First check your NPM version
npm -v
1) Update NPM to current version:
View curent NPM version:
npm view npm version
Update npm to current version:
npm i -g npm
2) List all available NPM versions and make a custom install/update/roll-back
View all versions including “alpha”, “beta” and “rc” (release candidate)
npm view npm versions --json
Reinstall NPM to a specific version chosen from the versions list – for example to 5.0.3
npm i -g [email protected]
Installing one version will automatically remove the one currently installed.
For Linux and iOS prepend commands with sudo
2
I ran into bundle of errors including
Error: EACCES: permission denied, unlink
running above command withsudo
worked@DevWL, I’m trying your solution now. When I ran the
npm view npm versions --json
command, I got a TON of listings of versions beginning at “1.4.26” – “7.0.0-beta.12” so I’m runningnpm i -g [email protected]
— it appears to be taking a while (currentlyfetch -> lock
is running but looks hung) fingers-crossed– Chris22
Upgrading for Windows Users
Windows users should read Troubleshooting > Upgrading on Windows in the npm wiki.
Upgrading on windows 10 using PowerShell (3rd party edit)
The link above Troubleshooting#upgrading-on-windows points to a github page npm-windows-upgrade the lines below are quotes from the readme.
I successfully upgraded from npm 2.7.4 to npm 3.9.3 using node v5.7.0 and powershell (presumably powershell version 5.0.10586.122)
First, ensure that you can execute scripts on your system by running
the following command from an elevated PowerShell. To run PowerShell
as Administrator, click Start, search for PowerShell, right-click
PowerShell and select Run as Administrator.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
Then, to install and use this upgrader tool, run (also from an
elevated PowerShell or cmd.exe):
npm install --global --production npm-windows-upgrade
npm-windows-upgrade
2
or just run: npm install -g npm
No Gal, you are confusing the issue, running npm install -g npm does not work on Windows, have you read the issues Windows users have had (listed above ?). Use the Powershell method as shown in Surf’s answer. Thanks smurf , finally managed to upgrade yeeehaaaa!
– Davet
First update npm
,
npm install -g [email protected]
Then update node
to the next version,
npm install -g [email protected]
or npm install -g [email protected]
or, to the latest,
npm install -g [email protected]
or npm install -g node
check after version installation,
node --version
or node -v
0
SIMPLY USE THIS
npm i -g npm
This is what i get promped on my console from npm when new update/bug-fix are released:
1
after I ran this I had to exit the bash terminal and restart to see the changes. Because the
path
tonpm
changed during the update process and for some reason it kept executing the old version which showed the older version of course when you executednpm -v
To update npm, the
npm update npm -g
command didn’t work for me (on windows). What did work was reinstalling npm according to the documentation: “You can download a zip file from https://npmjs.org/dist/, and unpack it in the same folder where node.exe lives.” Make sure if you do this that you get rid of your previous installation first (though overwriting it will probably work ok…).To update your modules, use the npm update command
3
npm update npm -g
worked for me. I run OSx, and have node installed via homebrew, however,brew upgrade node
won’t run if you already have the latest node version running, as I did. Piece o’ cake.npm install -g [email protected]
worked for me on Windows8 stackoverflow.com/a/29023180/588759– rofrol@rofrol I tried that command, it didn’t work for me on Win 8.1.
npm
still had old version3.8.0
even though my previous version was6.10.x
. I needed to upgradenpm
to at least6.11.x
for Angular. Now I can’t seem to get rid of the old version.– Chris22
Try the latest stable version of npm
See what version of npm you’re running:
npm -v
Upgrading on *nix (OSX, Linux, etc.)
(You may need to prefix these commands with sudo
, especially on Linux, or OS X if you installed Node using its default installer.)
You can upgrade to the latest version of npm using:
npm install -g [email protected]
Or upgrade to the most recent release:
npm install -g [email protected]
Upgrading on Windows
By default, npm is installed alongside node in
C:Program Files (x86)nodejs
npm’s globally installed packages (including, potentially, npm itself) are stored separately in a user-specific directory (which is currently
C:Users<username>AppDataRoamingnpm
).
Because the installer puts
C:Program Files (x86)nodejs
before
C:Users<username>AppDataRoamingnpm
on your PATH
, it will always use the version of npm installed with node instead of the version of npm you installed using npm -g install [email protected]<version>
.
To get around this, you can do one of the following:
Option 1: edit your Windows installation’s
PATH
to put%appdata%npm
before%ProgramFiles%nodejs
.
Remember that you’ll need to restartcmd.exe
(and potentially restart Windows) when you make changes toPATH
or how npm is installed.Option 2: remove both of
%ProgramFiles%nodejsnpm
%ProgramFiles%nodejsnpm.cmd
Option 3: Navigate to
%ProgramFiles%nodejsnode_modulesnpm
and copy thenpmrc
file to another folder or the desktop.
Then opencmd.exe
and run the following commands:
cd %ProgramFiles%nodejsnpm install [email protected]
If you installed npm with the node.js installer, after doing one of the previous steps, do the following.
Option 1 or 2
- Go into
%ProgramFiles%nodejsnode_modulesnpm
and copy the file namednpmrc
in the new npm folder, which should be%appdata%npmnode_modulesnpm
. This will tell the new npm where the global installed packages are.
- Go into
Option 3
- Copy the npmrc file back into
%ProgramFiles%nodejsnode_modulesnpm
- Copy the npmrc file back into
A brief note on the built-in Windows configuration
The Node installer installs, directly into the npm folder, a special piece of Windows-specific configuration that tells npm where to install global packages. When npm is used to install itself, it is supposed to copy this special builtin
configuration into the new install. There was a bug in some versions of npm that kept this from working, so you may need to go in and fix that up by hand. Run the following command to see where npm will install global packages to verify it is correct.
npm config get prefix -g
If it isn’t set to <X>:Users<user>AppDataRoamingnpm
, you can run the below command to correct it:
npm config set prefix "${APPDATA}/npm" -g
Incidentally, if you would prefer that packages not be installed to your roaming profile (because you have a quota on your shared network, or it makes logging in or out from a domain sluggish), you can put it in your local app data instead:
npm config set prefix "${LOCALAPPDATA}/npm" -g
…as well as copying %APPDATA%npm
to %LOCALAPPDATA%npm
(and updating your %PATH%
, of course).
Everyone who works on npm knows that this process is complicated and fraught, and we’re working on making it simpler. Stay tuned.
Source: https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-npm
1
if devWL’s solution doesn’t work, I’m going to try yours. Thanks for the indepth answer. At this point, I’m wondering should I just uninstall Node and NPM — it has taken me all day to try to fix this just so I can run Angular apps. I installed Node 12.18.4 today and thought it would update npm, but instead, when I run
npm -v
now, I get3.8.0
as version when it previously was6.10.x
. Frustrating…– Chris22
I think the best way to manage node.js is to use NVM.
NVM stands for Node Version Manager.
It’s a must-have tool for node.js developers!
You can install NVM using the following command, open terminal and run any one of the following:-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
or
wget -qO- https://raw.githubusercontent.com/nvm-sh//nvm/v0.39.0/install.sh | bash
After installing this it’s recommended to close the current terminal and open a new one since NVM will be adding some environment variables so terminal needs to be restarted.
I’ll list down some of the basic commands for using NVM.
- This will fetch all the node versions from the internet. All node versions from beginning till date will be shown, It will also mention LTS versions alongside.
nvm ls-remote
- This will show you the recommended versions of npm and node you should use. (This works only if you already have a version of npm installed, if not use the above command)
npm doctor
- This will install the node version which you want (version list is obtained using the above command)
nvm install <version recommended by 'npm doctor' or 'nvm ls-remote'>
for example nvm install v14.18.1
- This command will give us the list of node versions that are installed locally
nvm ls
- This command is used to remove the node version that you want from your computer
nvm uninstall v10.15.1
- The following command will help you upgrade to the latest working
npm
on the current node version
nvm install-latest-npm
- NVM can be used to manage multiple node versions simultaneously
- It can also help you install all the global
npm
packages from one version to another instead of manually installing each one of them! - There are many other uses of nvm the details of which and the commands can be found here Node Version Manager
1
Thanks @lightwing for updating links! 🙂
$ npm install -g npm stable
Worked for me to update from 1.4.28 to 2.1.5
Install npm => sudo apt-get install npm
Install n => sudo npm install n -g
latest version of node => sudo n latest
Specific version of node you can
List available node versions => n ls
Install a specific version => sudo n 4.5.0
To install the latest version of npm using npm:
sudo npm install [email protected]
I run this on Linux so I am not sure about other operating systems.
On Linux you can also run:
sudo apt-get update
sudo apt-get upgrade
This will tell the apt-get
package manager to update and upgrade all packages.
3
For Linux users. To solve “Error: EACCES: permission denied”, you can
sudo
command before running npm install.sudo npm i [email protected]
– ibnɘꟻOr you can log in as root if you don’t want to use
sudo
You will typically want to
npm install npm -g
, right?
I just installed Node.js on a new Windows 7 machine, with the following results:
> node -v
v0.12.0
> npm -v
2.5.1
I then did the above described procedure:
> npm install -g npm
and it upgraded to v2.7.3. Except than doing npm -v
still gave 2.5.1.
I went to the System configuration panel, advanced settings, environment variables. I saw a PATH variable specific to my user account, in addition to the global Path variable.
The former pointed to new npm: C:UsersPhiLhoAppDataRoamingnpm
The latter includes the path to node: C:PrgCmdLinenodejs
(Nowadays, I avoid to install stuff in Program Files and derivates. Avoiding spaces in paths, and noisy useless protections is saner…)
If I do which npm.cmd
(I have Unix utilities installed…), it points to the one in Node.
Anyway, the fix is simple: I just copied the first path (to npm) just before the path to node in the main, global Path variable, and now it picks up the latest version.
<some stuff before>;C:UsersPhiLhoAppDataRoamingnpm;C:PrgCmdLinenodejs
> npm -v
2.7.3
Enjoy. 🙂
3
did you put this as the last entry in your Environment Variables Path?
– Chris22@Chris22 It is not important, the important part is that the path to npm is before the path to nodejs. And, of course, you must have no other paths to identical names before these!
– PhiLhothanks. I’ll keep this in mind. I still don’t understand why when I installed node 12.x the other day, my
npm
version went backwards to3.8.x
when it was at version6.x.x
.– Chris22
For Linux, OSX, etc..
To install the latest version of NPM
npm install -g [email protected]
Or To Install the most recent release
npm install -g [email protected]
Additional : To check your npm version
npm -v
If you are in a Windows Machine, I suggest going to the npm website
2
What is the difference between the latest and the most recent?
@Chris Lang recent is the newest version but the latest is the newest stable version
I recently stumbled across this article: http://martineau.tv/blog/2013/12/more-efficient-grunt-workflows/ and the author mentions $ npm-check-updates -u && npm install
to update all dependencies.
This is a little off the topic but I ended up here on a similar search so thought it was worth the share.
1
david-dm.org And this just appeared as a comment from the post I cited. Seems perfect…
Just run the following command in terminal as root/administrator:
npm i -g n
n stable
npm update -g npm
It has worked for me on Linux
0
Sometimes it’s just simpler to download the latest version from http://nodejs.org/
Especially when all other options fail.
http://nodejs.org/ -> click INSTALL -> you’ll have the latest node and npm
Simple!
6
Definitely simpler, but doesn’t always work. I’ve struggled with all of the above suggestion and some more – none worked on my mac. Going to nodejs.org fixed it.
– guyain that case, you probably installed it in a bad way to begin with. Node/npm is one of those you want to prefix your installation so you don’t need sudo for everything.
I probably installed it normally using brew or the installer. It might have been a specific bug in a specific npm version. I will probably never know and its probably doesn’t matter – it was updating perfectly since than using npm update.
– guyaThis worked for me, thanks. I was having issues getting to the latest, and screwed things up when I unknowingly emptied the npm cache, heh. Had to (re)install the msi (on Windows) to get fully updated. Worked perfectly.
– JasonH
To update npm :
npm install [email protected]{version} -g
to update npm to the latest version:
npm install [email protected] -g
and to check the version :
npm -v
to update node js :
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
to check :
node -v
Just listened to an interview with the npm team on the latest episode of nodeup, and they recommended not using update
for the update from 1.x
to 2.x
. Instead, use:
npm install npm -g
Just with this code
npm install update
When it comes to Linux
I suggest an Update Node Using a Package Manager:
Node comes with npm pre-installed, but the manager is updated more frequently than Node. Run npm -v to see which version you have, then npm install [email protected] -g
to install the newest npm update. Run npm -v
again if you want to make sure npm updated correctly.
To update NodeJS
, you’ll need npm’s handy n module. Run this code to clear npm’s cache, install n, and install the latest stable version of Node
:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
To install the latest release, use n latest
. Alternatively, you can run n #.#.# to get a specific Node
version.
When it comes to Windows/ macOS
I suggest using Installers on Nodejs.org
The Node.js downloads page includes binary packages for Windows and macOS — but why make your life more difficult? The pre-made installers — .msi for Windows and .pkg for macOS — make the installation process unbelievably efficient and understandable. Download and run the file, and let the installation wizard take care of the rest. With each downloaded update, the newer versions of Node and npm will replace the older version.
Alternatively, macOS users can use the npm and n instructions above.
When it comes to updating your node_modules
dependencies folder, I suggest skipping all the things that could cause you a headache and just go to your specific project and re-run npm install
again.
Before anyone does that, I suggest first checking your package.json
file for the following:
As a user of NodeJS packages, you can specify which kinds of updates your app can accept in the package.json file. For example, if you were starting with a package version 1.0.4, this is how you could specify the allowed update version ranges in three basic ways:
To Allow Patch Releases: 1.0 or 1.0.x or ~1.0.4
To Allow Minor Releases: 1 or 1.x or ^1.0.4
To Allow Major Releases: * or x
Explanation:
MAJOR version for when there are incompatible API changes. –> ~
MINOR version for when functionality is added in a backwards compatible manner. –> ^
PATCH version for when backward compatible bug fixes are done. –> *
for nodejs should uninstall it and download your favorite version from nodejs.org
for npm run below line in cmd:
npm i npm
Warning: if you need update Node from an old version (in my case v4.6.0
) it is better to re-install nodejs from scratch (download link: https://nodejs.org) otherwise npm will also update itself to a version that’s not compatible with the new Node (see this discussion).
This is the error message that I got after updating Node (on Windows) with npm
$ npm install -g npm stable
[ . . .]
$ npm
C:UsersmeAppDataRoamingnpmnode_modulesnpmbinnpm-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
After new installation npm works again:
$ npm -v
6.5.0
$ node -v
v10.15.0
0
npm install -g [email protected]
The above code can be run in the terminal to update your node package manager if you have already installed npm. If you don’t have npm you can use
sudo apt-get install npm
then you can update it by the above method
Also if you want to update to a particular version, follow this:
sudo npm cache clean -f
sudo npm install -g n
sudo n <specific version>
1
npm WARN using --force I sure hope you know what you are doing.
– Jeff
Use NVM to manage node version, it will automatically take care of npm.
For Cygwin users:
Installing n (node version manager) in Cygwin
doesn’t work, instead update node with:
wget https://nodejs.org/download/release/latest/win-x64/node.exe -OutFile 'C:pathtonodejsnode.exe'
# Updating npm
npm i -g npm
Yes, you need to install wget
first.
I was point out that even a more correct way of updating npm is to use nodesource.com See stackoverflow.com/a/24760147/544463
Possible duplicate of How to update npm
@Motocarota Look at the dates, other question is duplicated of this one…
there is the tool
nvm
wich gives you the option to have more than one running versions of node+npmThings have changed for the better since this was first asked (if you don’t need version managemenent). See Update Node (Windows, Mac & Linux).