#Node.jsとは
Node.jsはサーバーサイドで動くJavaScript。Node.jsに関しては以前の記事で詳しく扱ってる。
以前はずっとnpmを使っていたが、最近yarnを知ったのでnpmとの違いについてまとめる。(間違い等ありましたら、コメントいただけると幸いです。)
##パッケージマネージャーとは
パッケージマネージャーは、どのソフトウェアがインストールされたのを記録して、新しいソフトウェアのインストール・新しいバージョンのソフトウェアの更新・インストールしたソフトウェアの削除を簡単に行えるプログラム。
#npmとは
Node Package Managerの略で、JavaScriptパッケージマネージャー。Node.jsで作られたパッケージやライブラリを管理するためのツール。npm
というコマンドで動作するプログラム。
npmにはインストールしたときのパッケージのバージョンの非再現性や、パフォーマンス・セキュリティの問題がある。この問題を解決するために生まれたのがyarn。
#yarnとは
npmの後に登場したJavaScriptのパッケージマネージャー。npmの上位互換のツールになっている。npmとの互換性があり、packagejson
がそのまま使える。(package.jsonについてはこちらの記事で詳しく扱ってる)
#npmとyarnの違い
npmとyarnを比較すると、主に3つの点でyarnの方が優れている。
##1. インストール速度の高速化
npmよりもyarnの方が早い。npmもアップデートされていくため、差は縮まっているもののyarnの方が高速。
##2. 高いセキュリティ
yarnはライブラリの整合性のチェックを行う。
##3. バージョンの管理が行いやすい
yarnにしかない機能もある。それがupgrade-interactive
で、アップデートできるパッケージを表示してくれる。
$ yarn upgrade-interactive
また、yarn.lock
ファイルでバージョンの違いの依存プログラム・パッケージのインストールが起こらないようになっている。現在ではyarn.lock
と同じ機能を持つpackage-lock.json
があるのでnpmでも変わらない。
#参考文献
パッケージマネージャとは
npmとyarnとpnpmの違い2021
【JS】yarnの長所とyarnからnpmに戻ってきた理由