“ npm install”在 Windows 上非常慢

对我来说 npm install非常慢。我使用的是 Windows 8.1和最新的 npm 版本。我的连接速度大约是100Mbit/s。

我正在尝试安装的项目有大约20个包/依赖项,安装所有依赖项需要大约30分钟..。

有人知道吗?

81085 次浏览

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.

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.

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

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 ;-)

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

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

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!

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.

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; or use alias to the AppData folder like: %AppData%\npm
If you're wondering why you can't find the AppData folder in Explorer, make sure to check "View" options for "Show hidden folders".

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 :)

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.

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.

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

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.

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.

This is highly situational but we have a local registry (npm config get registry) that was not available (VPN:d) in when I was running the npm install ... and this obviously made it very slow but it still succeeded because everything was still available through cache.