我有一个虚拟机(VirtualBox,Vagrant 基础盒)hashicorp/precise64) 在 Windows 7 主机上运行。我已经安装了 NodeJS v4.4.4。
我似乎遇到了问题一些网络连接,特别是我公司的内部 NPM 注册表,我已经配置了:
npm config set strict-ssl false
npm config set registry https://my.company.corp/npm-registry/
每当我运行时,npm install some-package
我都会收到一条消息,说 shasum 不正确,在深入研究调试日志后,我可以看到这是由于 ECONNRESET 错误导致的,并且只有部分文件被下载。
NPM 日志显示了下载的存档的完整 URL,我尝试使用 wget 下载相同的文件,但出现了类似的错误wget https://my.company.corp/npm-registry/some-package/-/some-package_0.0.1.tgz
,错误提示connection reset by peer
。
- 可以通过 curl 下载相同的文件。
npm install some-package
在 Windows 主机上工作正常- 相同的 Vagrant 设置在任意 OSX 机器上都可以正常工作
- 我尝试在 VirtualBox 中使用较新版本的 Ubuntu,但没有使用 Vagrant,问题依然存在
不幸的是,我无法分享该公司注册处的 URL,尽管无论如何,如果没有 VPN 访问,您也无法连接到它。希望我提供的信息足够让您有所指点。
答案1
我只需降级 VirtualBox 即可解决问题。我最初使用的是 v5.1.8,然后降级到 v5.0.10。
答案2
我遇到了类似的问题。
我有一个在 OSX 主机上的 VirtualBox 中运行的 Windows 7 客户虚拟机。
我使用的是 VirtualBox 5.1.8。
使用 node.js 运行以下 javascript 导致 ECONNRESET 错误:
var request = require('request');
request('http://google.com', function(err, response) {} );
将 VirtualBox 降级到 5.1.6 解决了网络问题。