×

NodeJS使用淘宝npm镜像站的各种姿势

96
冯宇Ops
2017.02.20 12:24* 字数 559

NodeJS镜像配置

nodejs和npm的仓库托管在S3上,在国内访问十分困难,这里可以用淘宝的镜像站npm.taobao.org代替。以下提供几种不同的使用淘宝NodeJS镜像的方法:

nvm使用淘宝镜像

很多人会使用nvm管理本地nodejs版本。而nvm支持通过环境变量指向nodejs和iojs的下载地址。

配置这两个环境变量即可:

Linux/Unix系统使用以下命令设置这个环境变量:

export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
export NVM_IOJS_ORG_MIRROR=https://npm.taobao.org/mirrors/iojs

永久生效请自行添加到shell的启动脚本配置中(bash可以添加到~/.bashrc,zsh可以添加到~/.zshrc)。

之后nvm ls-remotenvm install命令将会使用淘宝的镜像了。

npm使用淘宝镜像安装包

npm使用registry这个属性指定仓库,因此配置这个属性即可。修改npm配置属性的几种方法详见官方文档

这里只贴出修改registry的方法,以下三种任意一种即可:

  • 修改~/.npmrc文件(没有就自行新建一个),写入registry = https://registry.npm.taobao.org
  • 使用命令npm config set registry https://registry.npm.taobao.org(效果和上面等效)
  • 添加环境变量NPM_CONFIG_REGISTRY=https://registry.npm.taobao.org

同样的方法,将disturl这个配置同样指向: https://npm.taobao.org/dist, 任选一种方案:

npm config set disturl https://npm.taobao.org/dist

node-sass/phantomjs/electron使用淘宝镜像站

有些软件包安装的时候会下载已预编译好的二进制格式,比如node-sass/phantomjs/electron等等,这几个软件包大多数都将编译好的成品托管在S3上。

比较幸运的是这些软件包都有办法指定下载的路径,有兴趣的可以自己去读这些包的安装代码,会去从环境变量或npmrc配置中读取下载的路径,这里只贴出npmrc方案。同样也适用于npm环境变量配置方案:

npm config set electron_mirror https://npm.taobao.org/mirrors/electron/
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/

然后试试npm install phantomjs-prebuilt,就会看到从淘宝镜像站下载phantomjs了。

技术随笔
Web note ad 1