Yarn是Facebook、Google等主导开发的新的Javascript包管理器。(相对于npm)

安装

sudo npm install -g yarn --registry https://registry.npm.taobao.org

这里使用了taobao npm镜像

  • 配置Angular Cli使用yarn

使用ng命令设置全局使用yarn

ng config -g cli.packageManager yarn

使用

添加依赖

yarn add <DEP_NAME>

# dev
yarn add -D <DEP_NAME>

参考工具自带帮助文档

yarn --help

包下载缓存

可以通过设置环境变量YARN_CACHE_FOLDER来指定缓存目录

Ubuntu下修改~/.bashrc

echo 'YARN_CACHE_FOLDER=$HOME/.yarn' >> ~/.bashrc

构建速度简单比较

使用项目tour-of-heroes安装nodejs依赖。

镜像: https://registry.npm.taobao.org

NPM (6.14.5) Yarn (1.22.4)
real 0m26.231s real 0m14.048s
user 0m31.685s user 0m15.415s
sys 0m5.247s sys 0m5.666s

可以看到yarn明显要快一些。 类似于npm安装依赖时创建package-lock.json文件,yarn也会创建yarn.lock文件锁定依赖。(这时安装已有包换registry会不生效)

包下载镜像

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/

可以自己搭建一个镜像,解决内网防火墙内无法下载包的问题

  • 使用Caddy反向代理taobao镜像
:8080 {
  # https://npm.taobao.org/mirrors/node-sass/
  route /dist/node-sass/* {
    reverse_proxy https://cdn.npm.taobao.org {
      header_up Host {http.reverse_proxy.upstream.hostport}
    }
  }

  # https://npm.taobao.org/mirrors/phantomjs/
  reverse_proxy /dist/phantomjs/* https://cdn.npm.taobao.org {
    header_up Host {http.reverse_proxy.upstream.hostport}
  }
}
  • node-sass 离线安装

下载地址 https://github.com/sass/node-sass/releases

# 设置环境变量,注意使用绝对路径
export SASS_BINARY_PATH=<absolute_path_to_file>