'npm install' extremely slow on Windows

node.jsWindowsNpmBuild

node.js Problem Overview


For me is npm install extremely slow. I'm using Windows 8.1 with the latest npm version. My connection speed is around 100Mbit/s.

The project I'm trying to install has around 20 packages/dependencies and it takes around 30 Minutes to install all dependencies ...

Does anyone have a clue?

node.js Solutions


Solution 1 - node.js

I ran into the same problem, using --verbose as peterh mentioned showed me the source of the problem: I am behind a proxy, which uses its own certificates for https-connections. According to user "Mletter1" on https://github.com/npm/npm/issues/8872 the issue is quite easily solved by using http:

npm config set registry http://registry.npmjs.org/ --global

And voilà, it's fast again. Of course you should only do this, if you're ok with cleartext npm infos over the net ;-)

Solution 2 - node.js

Warning regarding security: this is an insecure approach if you don't use any other means of antivirus protection.

From eternity → to 5 seconds builds:

  • search for Windows Defender settings
  • → Virus & threat protection
  • → Virus & threat protection Settings
  • → Exclusions

here add this two paths to your list of excluded realtime protection folders:

C:\Program Files\nodejs
C:\Users\<your username>\AppData\Roaming\npm

PS: replace the <your username> with your respective User folder name.
If you're wandering why you can't find the AppData folder in Explorer, make sure to check View options for hidden folders.

Solution 3 - node.js

I know its just a workaround, but try using the build-in "Windows PowerShell"

Solution 4 - node.js

I've been facing the same issue for a while. I was trying out the following

npm i typescript live-server --save-dev

The install would get stuck at it forever. However adding the -verbose flag worked just fine.

Solution 5 - node.js

It seems like npm do not deal well with internet connections and can sometimes end in such situation.

1) I'll advice you to check if your firewall or antivirus is not performing any scan or filtering which may slow down npm install.

2) You may also use caching from npm like below.

npm install package-name --cache "c:\path\to\use\as\dependencies\cache"

this will allow npm download and cache dependencies in the directory you specified.

3) another solution for caching npm packages dependencies is npm lazy, you may find more information about this at npm Lazy website

Note: the caching process may or may not improve the download speed but it will probably save downloads time when installing or updating your npm packages.

Solution 6 - node.js

For me it appeared to be a problem with IPv6.

Disabling IPv6 helped immensely for me.
With IPv6 turned on "update-package newtonsoft.json" took 1:45 to time out with the error "update-package : A task was canceled."

With IPv6 disabled "update-package newtonsoft.json" completed in 10 seconds

Solution 7 - node.js

Turning off Windows Firewall and Windows Defender Real-time protection did it for me in Windows 10.

Solution 8 - node.js

I faced the same issue while creating project while using angular cli "ng new PROJECT_NAME" this command triggers "npm -install" after creation of project, which took too long to install, and got stuck at "Installing packages for tooling via npm" . Follow these which worked for me

  1. Check your npm version "npm --version" (must be higher than 2.1.8)Update your npm package by "npm -g install --save latest-version"

  2. Remove the progress bar which consumes more time "npm set progress=false"

check this issues if still doesn't fix your problem https://github.com/nodejs/node/issues/4150 https://github.com/npm/npm/issues/11283

Hopefully this sorts the problem Cheers!

Solution 9 - node.js

In my case it was due to over 200 vulnerabilities. When I ran

npm audit fix

that solved only just a few of them. Eventually, I had to run

npm audit fix --force

and it got way better than before.

Solution 10 - node.js

I tried all the config's (proxy, registry, etc) nothing worked for me, so did a complete uninstall and install node & npm. Which helped to solve the issue.

Solution 11 - node.js

Turning off the Windows Defender Firewall helped for me.

Because it just doesnt feel right I first added the WIFI to a Private Network (via WIFI settings) and only turned off the Windows Defender for a Private Network instead of all public Networks.

The next step should be: what network traffic causes this and how to add this to the Windows Defender exception rule :)

Solution 12 - node.js

Fully turning off virus and firewall protection isn't the safest option. While it makes things faster, it leaves you more vulnerable.

In my case, I only excluded the node.exe process in virus & threat protection.

  • In your start menu, type "windows security" and open the app.
  • Click on "Virus & threat protection"
  • Virus & threat protection settings => Manage settings
  • Exclusions => Add or remove exclusions
  • Add an exclusion => process => type node.exe => click Add

just a simple create-react-app went down from 2m40s to 1m10s npm commands are also executed by node.exe, so the same improvements are noticed there.

Solution 13 - node.js

Make sure you really are using a recent version of npm. In my case C:\Program Files\nodejs\npm.cmd had been using an old npm-cli.js below the default prefix folder %appdata%\npm rather than a newer npm-cli.js below C:\Program Files\nodejs.

Setting the environment variable npm_config_prefix to C:\Program Files\nodejs solved that. (Before finding that solution, I tried using the --prefix argument and found out the hard way doing so "forces non-global commands to run in the specified folder".)

I found a huge performance increase going from 3.10.9 to 6.13.4-- enough to make npm install times acceptable despite interference from antivirus.

Solution 14 - node.js

I just went through a rabbit hole trying to identify the issue. If npm install keeps getting bottlenecked you should heavily consider modifying the properties of your virtual ethernet and disable all of the offload items.

I had 0 proxies or caching issues with npm.

See here for the tutorial on how to get to the menu and disable your offload settings. Make sure you do this for both your your ethernet and VEthernet and you should immediately notice a difference. I went from a 10 minute hanging resolution that sometimes just stopped down to 10 seconds installs. https://www.dincloud.com/blog/tuning-windows-get-15x-speeds-on-large-file-copies-today

Solution 15 - node.js

in addition to all other great comments, I'd also suggest switching to yarn (https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks-yarn). using devops (selfhosted agent v.2.192.0), with node (v.14.17.6), we were able to trim total build (install + build) from ~10min to ~6-7 min.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSimon KnittelView Question on Stackoverflow
Solution 1 - node.jsChristof KälinView Answer on Stackoverflow
Solution 2 - node.jsRoko C. BuljanView Answer on Stackoverflow
Solution 3 - node.jsMartinDoesView Answer on Stackoverflow
Solution 4 - node.jsNikhil DevView Answer on Stackoverflow
Solution 5 - node.jsWilliemView Answer on Stackoverflow
Solution 6 - node.jsBenjamin CashaView Answer on Stackoverflow
Solution 7 - node.jsMikeView Answer on Stackoverflow
Solution 8 - node.jsTrailblazerView Answer on Stackoverflow
Solution 9 - node.jsTiago Martins PeresView Answer on Stackoverflow
Solution 10 - node.jsPrasanth JayaView Answer on Stackoverflow
Solution 11 - node.js10ChampView Answer on Stackoverflow
Solution 12 - node.jsbirgertView Answer on Stackoverflow
Solution 13 - node.jsweirView Answer on Stackoverflow
Solution 14 - node.jsfengelhardtView Answer on Stackoverflow
Solution 15 - node.jsyobView Answer on Stackoverflow