hene

hene.dev

JavaScript のパッケージマネージャーを yarn から npm に乗り換えてみる

JavaScript のパッケージマネージャーを yarn から npm に乗り換えてみる

yarn と npm とは?

JavaScript のパッケージマネージャーのこと。

なぜ、yarn から npm に乗り換えようと思ったか?

もともとこのブログのパッケージマネージャーは yarn を使っていた。 会社では npm をメインで使っていたので、プライベートのパッケージマネージャーも npm に統一したかった。 パッケージマネージャーを途中で乗り換えたことがなかったので、試してみたくなった。

yarn と npm のどちらが良いか

どっちを使っても良さそう。

  • npm より yarn のほうが install 速度は早い
  • npm は、Node.js 公式のパッケージマネージャー
  • npmyarn にほとんど差はない

yarn と npm のどっちを使えば良いんだという悩みに対する回答としては、複数人開発・個人開発のどちらにおいても長期的な目線で見れば npm で良いと思ってます。

yarn と npm の栄枯盛衰

人によると思いますが(npmも短縮系を使えば短いとか)、yarnの方が簡潔で、実際の開発スタイルにあっていていいと思います。(例えばpackage.jsonに追加せずにinstallすることはチーム開発する上ではやってはいけないし、やらない)

npm vs yarnどっち使うかの話 - Minimal Blog

結論は両者にほとんど差はないと言えるでしょう。 なので、基本的には公式のnpmを使えば良いかと思います。 とは言え、インストールの速度は明確にyarnの方が上です。 なので、まだまだ開発段階でパッケージのインストールや、CIを回すことが多いといった場合はyarnを採用しても良いかもしれません。

npmとyarnについて解説

yarn から npm に乗り換える

下記方法で乗り換えられそうだったので、試した。

  1. yarn.lock ファイルを消す
  2. node_modules を消す
  3. npm install をしてパッケージをインストールするのと同時に package-lock.json を生成する

yarn から npm に出戻ろうとしている話 - freee Developers Hub

yarn.lock ファイルを消す

$ rm -f yarn.lock

node_modules を消す

$ rm -rf node_modules/

npm install

$ npm install を実行することで、package-lock.json が生成された。

$ npm install

added 798 packages, and audited 799 packages in 1m

250 packages are looking for funding
  run `npm fund` for details

9 moderate severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

npm audit fix --force

脆弱性のある package を修正。

$ npm audit fix --force
npm WARN using --force Recommended protections disabled.
npm WARN audit Updating next to 14.0.0, which is a SemVer major change.
npm WARN audit Updating @mapbox/rehype-prism to 0.7.0, which is a SemVer major change.

added 3 packages, removed 258 packages, changed 7 packages, and audited 544 packages in 9s

233 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

npm install しなおす

問題なさそう。

$ npm install

up to date, audited 544 packages in 1s

233 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

参考

関連記事