JavaScript のパッケージマネージャーを yarn から npm に乗り換えてみる
JavaScript のパッケージマネージャーを yarn から npm に乗り換えてみる
yarn と npm とは?
JavaScript
のパッケージマネージャーのこと。
なぜ、yarn から npm に乗り換えようと思ったか?
もともとこのブログのパッケージマネージャーは yarn
を使っていた。
会社では npm
をメインで使っていたので、プライベートのパッケージマネージャーも npm
に統一したかった。
パッケージマネージャーを途中で乗り換えたことがなかったので、試してみたくなった。
- yarn: yarnpkg/berry: 📦🐈 Active development trunk for Yarn ⚒
- npm: npm/cli: the package manager for JavaScript
yarn と npm のどちらが良いか
どっちを使っても良さそう。
npm
よりyarn
のほうがinstall
速度は早いnpm
は、Node.js
公式のパッケージマネージャーnpm
とyarn
にほとんど差はない
yarn と npm のどっちを使えば良いんだという悩みに対する回答としては、複数人開発・個人開発のどちらにおいても長期的な目線で見れば npm で良いと思ってます。
人によると思いますが(npmも短縮系を使えば短いとか)、yarnの方が簡潔で、実際の開発スタイルにあっていていいと思います。(例えばpackage.jsonに追加せずにinstallすることはチーム開発する上ではやってはいけないし、やらない)
結論は両者にほとんど差はないと言えるでしょう。 なので、基本的には公式のnpmを使えば良いかと思います。 とは言え、インストールの速度は明確にyarnの方が上です。 なので、まだまだ開発段階でパッケージのインストールや、CIを回すことが多いといった場合はyarnを採用しても良いかもしれません。
yarn から npm に乗り換える
下記方法で乗り換えられそうだったので、試した。
- yarn.lock ファイルを消す
- node_modules を消す
- npm install をしてパッケージをインストールするのと同時に package-lock.json を生成する
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