设置NPM淘宝镜像地址

发布:elantion 日期:2019-02-16 阅读:1019 评论:0

对于国内用户来说,下载国外文件是一件非常痛苦的事,特别是像npm这种动不动就关联下载十几个包的,随便就能耗上一整天。所以设置国内NPM镜像非常有必要,而其中最为良心、速度最快、最稳定的当属淘宝镜像,所以我们来看看怎么设置吧。

官方地址

先给出官方地址:https://npm.taobao.org

如何设置NPM镜像

你可以直接在命令行里输入就行,永久有效:

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

如果你平时只用官方源,临时使用一下镜像,这时只要在安装包时加上镜像参数即可:

npm install express --registry=https://registry.npm.taobao.org

如果你不喜欢命令行,你也可以直接修改.npmrc文件来设置,也是永久有效。

# .npmrc
# location: ~/.npmrc

registry=https://mycustomregistry.example.org

如果你只想公司内部的包才用镜像,可以设置作用域,针对某些包才走镜像:

# .npmrc

@flyme:registry=https://npm-registry.flyme.cn

这时候安装@flyme开头的包(例如:npm install @flyme/tools)都会走上面那个域名。

设置Electron镜像

对于electron来说,虽然github的下载地址没有被墙,不过文件较大,下载起来也比较吃力,弄个镜像地址下载,速度就飞起来了。可以直接使用命令:

npm set ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"

当然也可以直接修改.npmrc文件了:

# .npmrc
ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/

如果设置镜像后仍安装失败,可以手动从镜像地址( https://npm.taobao.org/mirrors/electron/ )下载下来,放到缓存文件夹里,安装时就直接读缓存了,下面是缓存的目录地址:

Linux: $XDG_CACHE_HOME or ~/.cache/electron/
MacOS: ~/Library/Caches/electron/
Windows: $LOCALAPPDATA/electron/Cache or ~/AppData/Local/electron/Cache/

设置Puppeteer镜像

Puppeteer 也要安装一个国外的软件Chromium,下载速度也很感人,常发生ERROR: Failed to download Chromium rxxxx这种报错,所以用国内镜像可以大大优化下载过程。同理,在.npmrc上写下下面这句后保存即可。

puppeteer_download_host = https://npm.taobao.org/mirrors

关于cnpm

cnpm跟npm一样都是用来安装npm包,但它可以不用设置镜像,直接帮你走镜像路径。在很多年前用过它,但由于兼容性问题,现在基本上不用了,还是使用官方npm比较省心。如果你有兴趣可以安装试试,方法很简单,直接执行下面命令即可。

npm install cnpm -g

安装包的时候不用输入镜像地址:

cnpm install express

关于 yarn

yarn 会读取.npmrc的配置文件,所以不必为yarn再设置一次,不得不说,yarn真是人性化。

更多镜像设置

请参考以下命令:

# source: https://gist.github.com/52cik/c1de8926e20971f415dd
npm set registry https://registry.npm.taobao.org # 注册模块镜像
npm set disturl https://npm.taobao.org/dist # node-gyp 编译依赖的 node 源码镜像

## 以下选择添加
npm set sass_binary_site https://npm.taobao.org/mirrors/node-sass # node-sass 二进制包镜像
npm set electron_mirror https://npm.taobao.org/mirrors/electron/ # electron 二进制包镜像
npm set puppeteer_download_host https://npm.taobao.org/mirrors # puppeteer 二进制包镜像
npm set chromedriver_cdnurl https://npm.taobao.org/mirrors/chromedriver # chromedriver 二进制包镜像
npm set operadriver_cdnurl https://npm.taobao.org/mirrors/operadriver # operadriver 二进制包镜像
npm set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs # phantomjs 二进制包镜像
npm set selenium_cdnurl https://npm.taobao.org/mirrors/selenium # selenium 二进制包镜像
npm set node_inspector_cdnurl https://npm.taobao.org/mirrors/node-inspector # node-inspector 二进制包镜像

# atom
npm set npm_config_disturl=https://npm.taobao.org/mirrors/atom-shell

npm cache clean --force # 清空缓存