読者です 読者をやめる 読者になる 読者になる

Connehito開発者ブログ

Connehito Engineer's Blog

速いらしいのでYarnを使ってみる

javascript npm yarn tool

f:id:dachi023:20161015111905p:plain

こんにちは。フロントエンジニアの安達 (@ry0_adachi) です。
最近、一気に冷え込んできたのでしっかり着込んで出かけないと痛い目を見そうです (1敗)。

さて、今回はYarnをさっくり触ってみたのでその検証と感想を書こうと思います。

Yarnとは

github.com

JavaScriptのパッケージマネージャーです。
npm, package.jsonとの互換性もあるので従来のプロジェクトでも使えます。
今の所、私の認識としては「npm installを便利にしたもの」という感じ。

メリット

  • インストールが速い
  • lockファイルによるバージョンロック
  • 絵文字が可愛い

あたりでしょうか。絵文字があるおかげでインストール中もほっこりします。
それと、重複したモジュールの整理をしたりもしてくれます。
その辺はまだそんなに触ってないので、今回は本当に速いのかどうかを検証します。

Yarnのインストール

$ npm i -g yarn

npm installとyarn installの比較

せっかくなのでキャッシュを消した状態からmamariのリポジトリで試してみます。
時間計測はtimeコマンド使ってやります。
(検証はモバイルルータ使ってやったのでそもそもがめちゃ遅いです)

npm install

$ rm -rf node_modules
$ npm cache clean
$ time npm i

real    8m1.080s
user    1m23.301s
sys     0m18.123s

遅いですね...。

Yarn

まずはキャッシュない状態から。

$ rm -rf node_modules
$ time yarn

real    3m49.978s
user    0m40.128s
sys     0m18.585s

既に速いですがさらにキャッシュありでやってみます。
Yarnでインストールすると ~/.yarn-cache にグローバルなキャッシュとして残り、
2回目以降のインストールがさらに高速になります。

↓がキャッシュありの場合の検証結果です。

$ rm -rf node_modules
$ time yarn

real    0m15.863s
user    0m10.773s
sys     0m6.903s

驚きの速さ。real timeだとnpm installに比べて7分強縮まってますね。

感想

想像以上に速かったです。CI上で使ってあげたら結構な速度改善ができそうな予感です。
まだ出たばかりなので今後に期待ですが、最初の感想としては素敵!といった感じでした。

参考