Nodejs npm 安装时下载 github 内容下载不动,用代理的话就不能用国内源了吗?这事不能两全其美吗?
Nodejs npm 安装时下载 github 内容下载不动,用代理的话就不能用国内源了吗?这事不能两全其美吗?
因为 npm 的设计原因,安装个东西会生产成千上万的 http 请求,用代理的速度不是太理想,所以我用了国内淘宝源。但项目用了几个包安装时需要从 github 下东西,而你知道的那是完全下不动的。
那问题就来了,设置了 npm proxy 的话连国内源的请求也被代理了,是不是有我不知道的方式可以解决这个问题?
一般需要 github 下东西的库都支持通过环境变量选择本地已下载的文件或者通过环境变量自定义镜像网址(要是没有就提 issue
一般而言, 需要从 github 下的东西, 这些包 应该会有环境变量可以设置镜像地址,一般而言, 这些在阿里镜像里也有。
当然, 上面提到的“一般而言”, 指的是 比较常用的包。 例如 前端经常用到的 node-sass , 还有 puppeteer 之类。
对就是这个。
这么看 node 没有一个“标准"的代理环境变量处理这种,http_proxy 连 registry 请求也代理了,没有人提 bug 报告吗
反代 github
可以用缓存镜像,拉过一次之后就不用再找 upurl 了,不知道有没有这种方案。
抱歉挖一下坟,我遇到的库不是“一般而言”的库:git://github.com/adobe-webplatform/eve.git
我目前的解决方案是:
npm install 前执行<br>git config --global url."<a target="_blank" href="https://sciproxy.com/https://github.com/" rel="nofollow noopener">https://sciproxy.com/https://github.com/</a>".insteadOf "git://<a target="_blank" href="http://github.com/" rel="nofollow noopener">github.com/</a>"<br>
安装完之后,要恢复的话<br>git config --global --unset url."<a target="_blank" href="https://sciproxy.com/https://github.com/" rel="nofollow noopener">https://sciproxy.com/https://github.com/</a>".insteadOf "git://<a target="_blank" href="http://github.com/" rel="nofollow noopener">github.com/</a>"<br>
对于“一般而言”的库,可以看看: https://help.aliyun.com/document_detail/202442.html?spm=5176.smartservice_service_create_ticket_step_2.help.dexternal.70033f1bwPqkm6&spm#section-3rm-wmg-l27
针对您提到的Node.js npm安装时下载GitHub内容卡住的问题,以及关于代理和国内源使用的疑问,以下是一些解决方案和建议:
-
使用国内npm镜像源:
- 国内用户在使用npm时,可能会遇到下载速度慢或卡住的问题,这是因为npm的默认源在国外。您可以使用国内的npm镜像源来提高下载速度,例如淘宝的npm镜像源。
- 设置命令:
npm config set registry https://registry.npmmirror.com/
- 验证命令:
npm config get registry
-
配置npm使用代理:
- 如果您的网络环境需要使用代理,您可以配置npm来使用代理。但请注意,使用代理后,可能需要重新配置或切换回国内镜像源。
- 设置代理命令(示例):
npm config set proxy http://proxy.example.com:8080
- 设置HTTPS代理命令(示例):
npm config set https-proxy http://proxy.example.com:8080
-
同时使用代理和国内源:
- 理论上,您可以同时使用代理和国内源。但具体配置可能因代理类型和网络环境而异。
- 如果遇到冲突,可以尝试先配置代理,然后再设置国内镜像源。
综上所述,通过合理配置和使用国内npm镜像源以及代理,您应该能够解决Node.js npm安装时下载GitHub内容卡住的问题。