npmとyarn,結局どっちがいいの?

54回生
この記事は約3分で読めます。

Node.jsユーザーなら絶対に一回は疑問に思うこの問題.yarnのセットアップとともに学んでいきます.

npmとは

npmは,Node.jsでパッケージを管理するためのシステムです.パッケージは,他のいろいろなプログラムで使い回せる便利なもの(モジュール)を一纏めにしたもののことで,特に現代的な開発を進めるのであればこれを使わない手はありません.

ところで,パッケージ自体はnpmなしでも動くのでは?と思った人,そのとおりです.パッケージそのものを何処かから仕入れることができれば,それでそのパッケージは使えるはずです.ですが,これではまずバージョンの管理が面倒です.バージョンが上がるたびに手動で全部インストールし直すのはめんどくさいですよね.それに,パッケージAを動かすにはパッケージBが必要…というようにパッケージが他のパッケージを必要とする場合があります.これをパッケージの依存関係といいますが,このときに自動で必要なパッケージを集めて来てくれたら楽ですよね.

そこで,頭のいい人たちはパッケージを便利に使えるようにしてNode.jsをもっと使ってもらおうと考えました.そこで生まれたのが「npm」です.

こんな経緯があるので,npmはNode.jsにデフォルトで組み込まれています.npmが動かないとまずいことはNode.jsの偉い人たちもよくわかっているのでnpmは安定性に優れていると言われています

yarnとは

以上のような経緯でnpmが生まれましたが,昔むかしのnpmは安定的でもパフォーマンスで十分なパワーがありませんでした.

そこで,今度はあの有名企業Meta(当時はFacebook)がnpmより素早く動き,セキュリティでもより高い性能を持つパッケージ管理システム,yarnを生み出しました.yarnはこんな経緯があるので,デフォルトではインストールされていません.しかし,yarnはnpmとの互換性があるのでそれまでnpmを使用してもスムーズにyarnへ移行できるはずです.

その他のyarnの特徴として,よりバージョンに厳格であると言われることがあります.これは「yarn.lock」という名前のファイルでインストールするバージョンを固定することができるためです.個人開発であれば問題にはなりにくいですが,企業などで複数の人が開発に関わる場合,全員が同じバージョンを使っていたほうが不具合を減らせます.そこでバージョンを固定できることは大きなメリットです.しかし,npmでもpackage-lock.jsonファイルによってバージョンを指定できます.なのでこれはnpmと比較したときのメリットとしては挙げられないでしょう.

現在は,昔よりもnpmの性能が良くなっているのでyarnを使うメリットは薄いかもしれません.しかし,歴史的背景からNode.js歴の長いつよつよエンジニアさんはyarnを使っている人が多いような印象を受けます.もちろん気がする程度ですが.

yarnのインストール

ここまでで,yarnを使ってみたくなったひと向けにyarnのインストール方法です.Node.jsのインストールまでは成功している前提です.まだの人はここから.

やることは非常に簡単.一個コマンドを実行するだけ.ただ,その前にちゃんとNode.jsのバージョンを指定してあげることはお忘れなく(やり方は上記記事から).

npm install -g yarn

これで’added 1 package in 3s’とか出てきたら正解.これでyarnを使えます.

コメント

タイトルとURLをコピーしました