npmとyarnどちらを使えばいいのか?
JavaScriptのパッケージ管理を行う際によく登場するnpm
とyarn
ですが、双方にどんな違いがあってどちらを使った方が良さそうなのか知らなかったので、簡単に調べて見ました👀
npm
Node.jsがリリースされた翌年に公開されたパッケージマネージャーで、Node.jsがインストールされた時点で一緒にインストールされます。
yarn
npmと同じくJavaScriptで書かれたパッケージマネージャーで、npmと互換性があるので、package.json
の内容をそのまま使用することができます。
どっちがいい?
結論としては、以下の三つの点からyarn
を使うようにする方が良さそうです。
- 早さ
- パッケージの整合性
- パッケージの安全性
まずは、早さについてですが公式には下記のように、「キャッシュするし、リソースを最大化するから早いぜ」といっています。リソースとは、PC側の処理リソースのことを指しています。
Yarn caches every package it has downloaded, so it never needs to download the same package again. It also does almost everything concurrently to maximize resource utilization. This means even faster installs.
参照: https://github.com/yarnpkg/yarn
次に整合性についてですが、パッケージの管理にyarn.lock
というファイルで、それぞれのパッケージの依存関係やバージョンなどを記録するので、異なるシステム間でも同じ環境(パッケージ)を利用することができます。ちなみに、npmはこのようなファイルがないので、バージョン違いのパッケージなどをインストールしてしまう可能性もありました。
最後に安全性についてですが、yarnはパッケージインストール時にそのパッケージに不正な変更がないかなどをチェックサムを利用して検証するので、安全にパッケージを使用することができるようです。
結論
yarn使おう。
てな感じで本日も以上となります🍺