iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

npmとyarnどちらを使えばいいのか?

JavaScriptのパッケージ管理を行う際によく登場するnpmyarnですが、双方にどんな違いがあってどちらを使った方が良さそうなのか知らなかったので、簡単に調べて見ました👀

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使おう。

てな感じで本日も以上となります🍺

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com