この記事は ミライトデザイン Advent Calendar 2021 13日目(のつもり)の記事です。
業務でnpmとyarnをいじることが多かったので、
そもそもnpmとyarnってなんだろうってことで調べてみました。
npm ってなに?
JavaScriptパッケージマネージャー。
Node.jsに同梱されているもの。
各パッケージのバージョンは、package-lock.jsonにかかれている。
npm
yarn ってなに?
こちらもJavaScriptパッケージマネージャー。
npmの後から出てきたもので、npmと互換性がある。
自分でインストールする必要あり。
各パッケージのバージョンは。yarn.lockにかかれている。
yarn
パッケージマネージャーとは
各ソフトウェアのインストールや更新、他のソフトウェアとの依存関係を管理するためのもの。
依存関係のパッケージを手動で1つずつインストールするのは大変だが、
パッケージマネージャーでまとめて管理できるようになる。
npmとyarnの違い
yarnはnpmと互換性があるため、どちらも同じように使うことが可能。
package.jsonは同じものを使用できる。
インストールの速度はyarnの方が速く、npmの方が遅い。
yarnはパッケージインストール時にチェックサムを用いて検証することができるので、安全なパッケージのインストールが可能。
どちらを使えばいいんだろうか?
業務で使用するにあたり、どちらがいいのかと調べてみたが、
好きな方を使えばいいよって書かれている記事が多かったです。
ただ、「どちらか」好きな方を使えば良いのであって、
両方を入れるのは良くないらしいです。
それぞれのバージョンが記載されているlockファイル(package-lock.jsonとyarn.lock)に書かれているバージョンが異なる場合、
バージョン管理している意味がなくなっちゃいますもんね。。。
(人によって、インストールするパッケージのバージョンが異なっちゃうので)
後書き
今回はざっくりと調べてみたことをまとめただけなので、
引き続きもう少し詳しく調べてみようかなと思います!
参考
https://github.com/npm/cli
https://yarnpkg.com/
https://qiita.com/Hai-dozo/items/90b852ac29b79a7ea02b
https://tcd-theme.com/2021/10/javascript-npm.html