LoginSignup
4
2

More than 1 year has passed since last update.

この記事は ミライトデザイン 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

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2