精品 加快npm的下载速度
 发布于 11 年前  作者 DoubleSpout  43897 次预览  最后一次回复是 9 年前  来自  

最近搞了台阿里云给客户做服务器,但是蛋疼的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:代理服务器端口
23 回复
dead-horse

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

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

Pana

好东西, 果断分享

Pana

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

yeaha

赞,有用!

fengmk2

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

wumingli

想恢复怎么操作?

DoubleSpout

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

DoubleSpout

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

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

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

fengmk2

@snoopy 对应还会安装c++模块的同学, 再加一个参数会更加好

$ npm install microtime --registry=http://r.cnpmjs.org --disturl=http://dist.cnpmjs.org
DoubleSpout

@suqian 是的,第一次安装node-gyp他回去dist那边下载整个node的包,速度慢的要死,谢谢拉~

fengmk2

@snoopy good, 哈哈, 假设你们还使用到nvm, 那么还有一种方式高速安装 node

$ NVM_NODEJS_ORG_MIRROR=hxxp://dist.u.qiniudn.com nvm install 0.11
fengmk2

评论比原文更加精彩

Pana

果真是这样哈

Pana

你们的dist是怎么同步的

DoubleSpout

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

Pana

@suqian 我自己在同步速度好慢

fengmk2

@panawang 就用我的那个就好了, 没必要多个镜像, 七牛有自动镜像功能.

Pana

@suqian 恩, 好的 七牛好多地方还真好用

yeliex

npm install nrm -g && nrm use taobao

tanteng

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

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