Yarn in Action

  1. 1. Advantage
    1. 1.0.1. 开发环境的 global bin 迁移问题
    2. 1.0.2. package.json & yarn.lock
    3. 1.0.3. More:
  • 2. 使用技能
    1. 2.1. Install
    2. 2.2. Common
    3. 2.3. Upgrade
    4. 2.4. Cache
  • 3. - yarn config
    1. 3.1. 配置国内源
    2. 3.2. 配置 node-sass
  • 4. REF::
  • npm 每次安装都会去服务器上拉一次,超级慢,虽然有 registry。

    npm 没有指定版本锁定,如果开发者不遵循 semver 规则,会导致不同环境安装不同的版本,从而出现问题。


    Advantage

    完全代替,且有以下优势:

    • Cache,更快
    • Concurrency Download,更快
    • Version Locked,一致性,安全
    • 本地代理+缓存,这样,最少解决了速度问题,不需要每次安装都从服务器上去接,这样太慢,效率大大提升。
    • 使用多线程去下载,更快。
    • 更主要的是版本锁定,yarn.lock 这样,就避免了因版本不一致而出现的各种问题。

    开发环境的 global bin 迁移问题

    nvm 虽然解决了 node 的版本问题,但每次升级都要对 global 的命令进行迁移,也是一件很烦的事情。

    yarn 很好的解决了这个问题,在 macOS 上, yarn 的配置和文件目录被放置了在 ~/.config/yarn 下,global 的目录则对应在 ~/.config/yarn/global,这样,就和 nvm 脱离了关系。每次升级不再有 global 迁移的苦恼。

    package.json & yarn.lock

    • package.json: 是 npm 的项目配置,包括依赖文件。
    • yarn.lock: 存储着所有的依赖的版本(包括依赖的依赖)。

    More:


    使用技能

    Install

    1
    2
    $ brew update
    $ brew install yarn

    一般都会用 nvm 来安装 node,这时 brew 就要特殊处理下:

    1
    $ brew install yarn --ignore-dependencies

    Common

    1
    2
    3
    $ yarn add
    $ yarn upgrade
    $ yarn remove

    Upgrade

    1
    $ yarn upgrade-interactive

    Cache

    可以直接把 cache 复制过去的,避免再次下载。

    1
    2
    3
    $ yarn cache ls
    $ yarn cache dir
    $ yarn cache clean


    - yarn config

    配置国内源

    配置 registry:

    1
    $ yarn config set registry https://registry.npm.taobao.org

    测试

    1
    $ yarn config get registry

    配置 node-sass

    node-sass 每次都会从 github 上下载文件,然后 github 是用 amazon s3,这个是被墙掉的,所以这里也需要配置它的下载源到国内。

    1
    $ yarn config set sass_binary_site http://npm.taobao.org/mirrors/node-sass -g

    测试

    1
    $ yarn config get sass_binary_site


    REF::