3

We are seeing ECONNRESET issues when using a shrinkwrapped package installed through our internal ProGet server. When configuring npm registry to be the regular npm registry and shrinkwrapping a package based on that, everything installs fine. We delete node_modules and execute npm cache clean in between runs to ensure we force downloads from ProGet. Interestingly, all 1,000+ resource requests that are listed in npm-shrinkwrap.json download correctly when plugged into a file downloader.

When installing with the verbose flag, we see a number of 404s where the npm client appears to arbitrarily alter the registry url from http://<internal-url>/npm/npm to omit npm/npm for some requests, but we don't know why that occurs or whether it relates.

We use ProGet 3.8.6, npm 3.3.11 and 3.5.4 (testing on two developer machines with the same results), and node 4.2.1.

Simon
  • 1,630
  • 1
  • 17
  • 23
  • 1
    Our work-around at this time is to switch to the official NPM registry prior to shrinkwrapping, so that all dependency references will bypass ProGet upon install. While that's not ideal, and while that only works since we don't depend on other custom packages we wrote (which would not be obtainable via NPM), it's not ideal as it does bypass ProGet, and we don't want this to be a long-term solution. – Simon Jan 11 '16 at 12:56
  • I also posted this issue on [Inedo's Support Forum](http://inedo.com/support/questions/4109) as well as [npm's Issue List](https://github.com/npm/npm/issues/11117). – Simon Jan 11 '16 at 15:02
  • The theory by both Inedo and npm is that this may relate to a lack of throttling on part of the npm client paired with our possibly insufficient ProGet and IIS setup. On a sidenote, we have come to the conclusion that it may be safer for us to just run with an npm -> npm implementation, so we are evaluating npm Private Packages to replace ProGet. I realize this doesn't apply to everyone; it's just what we think may work for us. – Simon Feb 05 '16 at 15:48
  • It looks like yesterday's npm 3.8.0 release may help as connections can now be throttled from infinitely many concurrent requests. https://github.com/npm/npm/blob/master/CHANGELOG.md#v380-2016-02-25 – Simon Feb 26 '16 at 11:59

0 Answers0