更改 yarn 仓库源

有时候在国内安装 nodejs 包真的很慢,可以设置 npm 或 yarn 的源:

1
2
3
4
5
6
7
$ yarn config get registry
https://registry.yarnpkg.com
$ yarn config set registry https://registry.npm.taobao.org --global
success Set "registry" to "https://registry.npm.taobao.org".
Done in 0.04s.
$ yarn config get registry
https://registry.npm.taobao.org

或者全局设置:

1
2
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global

速度会明显快很多,但是如果你安装的模块依赖了 C++ 模块, 就得通过 来编译,node-gyp 在第一次编译的时候, 需要依赖 node 源代码, 于是又会去 node dist 下载,速度很慢,可以用 --disturl 参数通过第三方镜像来下载,例如:

1
npm --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/mirrors/node install xxx

但是在安装 node-sass 时在 node scripts/install 阶段会从 github.com 上下载一个 .node 文件,而 GitHub Releases 里的文件都托管在 s3.amazonaws.com 上面,这个网址被墙了,所以下载不下来,为了解决这个问题每个仓库又提供了另外的参数:

1
SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass

为了方便跨平台直接使用 npm install 安装所有依赖,可以在项目内添加一个 .npmrc 文件:

1
2
3
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
electron_mirror=https://npm.taobao.org/mirrors/electron/

这样使用 npm install 安装 node-sasselectronphantomjs 时都能自动从淘宝源上下载了。例如下载 sharp 的时候可以这样:

1
SHARP_DIST_BASE_URL="http://cdn.react.ren/mirrors/libvips/" yarn add sharp --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/mirrors/node