加快npm的下载速度 Nodejs

加快npm的下载速度 Nodejs

最近搞了台阿里云给客户做服务器,但是蛋疼的GFW,让我在阿里云上npm操作举步为艰,在重试和卡住N次之后,接近崩溃边缘。

于是上网四处搜索,发现有一个cnpm的方法似乎可以解决问题,但是发现cnpm上镜像好像并不齐全,而且也是各种卡住,所以这种方式也只能放弃 ,于是搜到了一篇npm使用代理的文章,顿时醒悟。

首先,我们的npm包无所谓安全性,所以不要使用性能和效率更慢的https,转而使用http,相关命令如下: 1、关闭npm的https

npm config set strict-ssl false 

2、设置npm的获取地址

npm config set registry "http://registry.npmjs.org/"

一般这样运气的好的话,速度就会快许多,可能会安装成功。如果你还脸黑,这样设置还是一直卡住无法下载依赖,那就只能使用proxy代理方式来解决了,命令如下:

3、设置npm获取的代理服务器地址:

npm config set proxy=http://代理服务器ip:代理服务器端口

我就比较脸黑,最后在国外vps上加了http代理才将这些依赖全部下载下来。

希望本文能让一直无法正常下载npm而抓狂的同学有所帮助。

清除npm的代理命令如下:

npm config delete http-proxy
npm config delete https-proxy

也可以单独为这次npm下载定义代理

npm install -g pomelo --proxy http://代理服务器ip:代理服务器端口

18 回复

加快npm的下载速度 Node.js

最近我接手了一台阿里云服务器为客户搭建环境,但是在使用npm进行操作时遇到了一些麻烦。由于网络限制(如GFW),npm操作变得非常困难,经常出现重试和卡顿的情况,这让我感到十分沮丧。

经过一番搜索后,我发现了一些方法可以显著提升npm的下载速度。这里总结一下,希望能帮助遇到同样问题的朋友。

1. 关闭npm的HTTPS

首先,如果你们的项目对npm包的安全性没有特别高的要求,可以考虑关闭HTTPS以提高下载速度。HTTPS虽然提供了额外的安全性,但也会增加一些性能开销。可以通过以下命令关闭HTTPS:

npm config set strict-ssl false

2. 设置npm的镜像源

默认情况下,npm会从registry.npmjs.org下载包。然而,该地址在国内访问速度可能较慢。你可以切换到国内的镜像源,比如淘宝的npm镜像源,以提升下载速度:

npm config set registry "https://registry.npmmirror.com"

3. 使用HTTP代理

如果上述方法仍然不能解决问题,可以尝试使用HTTP代理。这种方法适用于那些需要通过特定出口点才能访问外网的情况。你需要找到一个可用的代理服务器,并设置npm使用该代理。例如:

npm config set proxy http://代理服务器ip:代理服务器端口
npm config set https-proxy http://代理服务器ip:代理服务器端口

假设你有一台位于美国的VPS,其IP为123.456.789.0,端口为8080,则可以这样设置:

npm config set proxy http://123.456.789.0:8080
npm config set https-proxy http://123.456.789.0:8080

清除代理设置

当不再需要代理时,可以使用以下命令清除代理设置:

npm config delete proxy
npm config delete https-proxy

单独为一次安装定义代理

如果你只需要为某一次npm安装操作使用代理,可以在命令行中直接指定代理参数:

npm install -g pomelo --proxy http://代理服务器ip:代理服务器端口

以上就是一些加快npm下载速度的方法,希望对你有所帮助。


cnpm 每半小时自动更新一次库,如果发现有未同步到的版本可以通过手动 cnpm sync package 来同步。

如果安装了 cnpm 客户端的话,会开启gzip,请求速度会更快。

好东西, 果断分享

soga, 一直在思考cnpm客户端有啥用,原来主要在这里哈

赞一个

赞,有用!

呃,不科学啊,说cnpm缺包。。。有具体一点么? 按正常来说,cnpm除了最近10分钟的包没法及时同步,都会自动同步好。 如果是想马上使用自己发的包,那么在npm publish 之后可以执行cnpm sync 来马上同步

想恢复怎么操作?

我错了,没仔细看cnpm,之前配置错了,绕了这么大一圈,现在试了试cnpm,速度杠杠的,确实不错。

之前没去看cnpm的官网,只是网上搜到有cnpm的配置,可能文章比较老,不是通过cnpm官网的方式进行的,现在简单了,只要执行如下命令即可:

npm install -g cnpm --registry=http://r.cnpmjs.org

cnpm速度确实杠杠的,感谢你们啊~我钻牛角尖了,唉

评论比原文更加精彩

果真是这样哈

你们的dist是怎么同步的

别置顶吧,明显误人子弟的文章。。。

npm install nrm -g && nrm use taobao

npm config set registry “https://registry.npm.taobao.org

用淘宝 npm 镜像地址,而不安装淘宝的 cnpm 好像也可以。

为了加快 npm 的下载速度,尤其是在受限网络环境中(如通过 GFW),可以通过配置 npm 使用 HTTP 协议而不是 HTTPS,并且可以设置 HTTP 代理来绕过网络限制。下面是具体的步骤和示例代码:

1. 关闭 HTTPS

默认情况下,npm 使用 HTTPS 来提高安全性。但在某些情况下,HTTPS 可能会导致下载速度变慢。因此,你可以选择禁用 HTTPS:

npm config set strict-ssl false

这条命令会关闭对 HTTPS 的严格验证。

2. 设置 npm 源为 HTTP

接下来,你需要确保 npm 使用 HTTP 而不是 HTTPS。尽管 npm 官方源是 HTTPS,但你可以手动将其切换到 HTTP:

npm config set registry "http://registry.npmjs.org/"

这条命令会将 npm 的注册表源设置为 HTTP。

3. 设置 HTTP 代理

如果上述方法仍然不能解决问题,可以考虑使用 HTTP 代理来加速下载。首先找到一个可用的 HTTP 代理服务器,然后执行以下命令:

npm config set proxy http://代理服务器ip:代理服务器端口
npm config set https-proxy http://代理服务器ip:代理服务器端口

例如,假设你的代理服务器 IP 是 192.168.1.1,端口是 8080,则命令如下:

npm config set proxy http://192.168.1.1:8080
npm config set https-proxy http://192.168.1.1:8080

清除代理设置

如果需要清除代理设置,可以使用以下命令:

npm config delete proxy
npm config delete https-proxy

单独为某次安装指定代理

如果你只想为某一次 npm 安装指定代理,可以在命令行中直接添加代理参数:

npm install -g pomelo --proxy http://代理服务器ip:代理服务器端口

通过以上配置,你应该能够显著提升 npm 在受限网络环境中的下载速度。如果仍然遇到问题,建议寻找一个可靠的国外 VPS 作为代理服务器,以获得更好的下载体验。

回到顶部