こんにちは。フロントエンジニアの安達 (@ry0_adachi) です。
最近、一気に冷え込んできたのでしっかり着込んで出かけないと痛い目を見そうです (1敗)。
さて、今回はYarnをさっくり触ってみたのでその検証と感想を書こうと思います。
Yarnとは
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上で使ってあげたら結構な速度改善ができそうな予感です。
まだ出たばかりなので今後に期待ですが、最初の感想としては素敵!といった感じでした。