yarnpkgを開発環境とCI環境で使う


地味に作業が多いのでyarnpkgを開発環境・CI環境で使うときに必要な手順を書いておきます

開発環境

開発環境にyarnをinstallする

Installationを参考に行う

.gitattributesでバイナリとして指定する

これが嬉しいかはチームによるかも?

yarn.lock binary

チームメンバーに周知

なにげに一番重要

CI環境

(以下、CircleCIベースで書きます)
参考URL:https://circleci.com/docs/yarn/

パッケージのインストール及びテストのコマンドをyarnに差し替え

yarn install時に--pure-lockfileを指定してlockファイル生成時のバージョンのパッケージを取得させます

circle.yml
dependencies:
  override:
    - yarn install --pure-lockfile
test:
  override:
    - yarn test

node_modules/.binへパスを明示的に通す

(CircleCIの都合なので他のCIサービスでは事情が異なりそう

circle.yml
machine:
  environment:
    PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"

キャッシュ使う

便利

circle.yml
dependencies:
  cache_directories:
    - ~/.cache/yarn

おわりに

yarn便利!

ちなみにこの記事書いたのは、CIでyarn installしたらTypeScript2.2が入ってきてlockファイルが更新されてしまい、Scalariform使ったチェックが落ちたのがきっかけ。
というわけでCIで使うときやリリースビルド作るときはちゃんとyarn install --pure-lockfile使いましょう、という話でした。