打包后的Meteor应用执行npm install失败,寻求解决方法
解决Meteor应用部署时npm包下载失败(连接重置)的问题
看起来你的主机和npm官方registry之间的连接出现了重置异常,这大概率是网络层面的问题或者npm自身缓存/配置导致的,试试下面这些针对性的解决方法:
清理npm缓存
缓存损坏有时候会引发奇怪的下载失败,先强制清理缓存再重试:npm cache clean --force cd programs/server sudo npm install切换npm镜像源
官方registry在部分网络环境下访问不稳定,换成国内镜像源试试(比如淘宝镜像):npm config set registry https://registry.npmmirror.com/ cd programs/server sudo npm install检查防火墙/安全组规则
虽然你说没做过网络变更,但有可能主机本地防火墙或者云服务商的安全组自动更新了规则,阻断了对registry.npmjs.org的80/443端口访问。可以临时关闭防火墙测试,或者确认安全组是否允许出站的HTTP/HTTPS请求。手动下载包并本地安装
既然Mac上能正常下载,你可以在Mac上下载fibers-1.0.5.tgz和source-map-support-0.2.8.tgz这两个包,通过scp传到主机的programs/server目录下,然后手动安装:cd programs/server sudo npm install ./fibers-1.0.5.tgz sudo npm install ./source-map-support-0.2.8.tgz sudo npm install更换DNS服务器
你用wget时解析到的IP可能存在访问问题,试试切换主机的DNS为公共DNS(比如Google的8.8.8.8):# 临时修改(不同系统方式可能不同,以Ubuntu为例) echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf修改后再尝试用wget下载测试,确认连接正常后再执行npm install。
内容的提问来源于stack exchange,提问作者Peter Nunn




