yarn と npm の違いと開発時の注意
パッケージマネージャとは何か
パッケージマネージャとは、コンピュータに何のソフトウェアがインストールされたかを記録し、新しいソフトウェアのインストール・新しいバージョンへのソフトウェアの更新・以前インストールしたソフトウェアの削除を容易に行えるようにするプログラムのこと。 パッケージマネージャーとは(https://www.debian.org/doc/manuals/aptitude/pr01s02.ja.html external_link)
npm とは
javascript のパッケージマネージャ。node.js をインストールしたら npm もインストールされる。
npmがyarnよりも優れている点
node.js をインストールしたら自動で npm もインストールされるので、パッケージマネージャの導入が少し楽。npm install
をすると package-lock.json
というファイルが生成されて、javascript のライブラリ間のバージョンの依存関係を管理してくれる。
yarn とは
javascript のパッケージマネージャ。facebook が作ったらしい。npm と互換性があるので同じpackage.json
が使える.だから npm から yarn への乗り換えも可能。yarn install
をすると、yarn-lock.json
ファイルが生成されて、npm の package-lock.json と同様にライブラリ間のバージョンの依存関係を管理してくれる。
yarnがnpmよりも優れている点
npm よりもインストールが早い。npm は直列で packege をインストールするのに対して、並列でインストールをするのでインストールが数倍早くなる。
開発時の注意点
yarnでライブラリの管理をしているのに npm コマンドの npm install hoge
でライブラリをインストールをしてしまうと、ライブラリの依存関係が壊れてしまうので注意!npm で管理している逆の場合も然り。
もし yarn でライブラリの管理をしているのに npm コマンドの npm install hoge
でライブラリをインストールをしてしまった場合は、各パッケージマネージャの lock ファイルである package-lock.json
と yarn.lock
と node-module
フォルダを削除して再度 yarn を用いてライブラリのインストールをすると依存関係が直ります。npm で管理をしている際も同様の手順。