概要
例えば、ReactNativeの開発に必要なExpo CLIは、インストール方法で以下のようにグローバルインストールを迫ってきます。
npm install -g expo-cli
例としてExpo CLIを挙げましたが、他にもグローバルインストールを勧めてくるライブラリはよく見かける気がします。
グローバルインストールの何が問題なのか
大きく2つの問題が存在します。
1. 他の人がインストールする時に手順が不明になる
複数プロジェクトをかけ持つ場合など、環境構築手順を明文化したりコード化する場合に何をどのようにインストールする必要があるかが不明瞭になってしまうため(気づかないうちにグローバルインストールしたライブラリに依存していたりする可能性もあるため)、チーム開発や個人でも並行して開発する場合に大きな問題を生む種になります。
2. バージョンの管理ができない
仮にA, B2つのプロジェクトでグローバルインストールしたライブラリを使うことを考えます。
Aでは1.0.0
, Bでは2.0.0
のライブラリを使わなければいけない場合に、ライブラリをグローバルインストールしてしまうと、プロジェクトを切り替えるたびに正しいバージョンを更新する必要が出てきてしまいます。しかも手動で。人力を経てしまうため、忘れてしまうことや、ミスをする可能性などが生まれ危険です。
このような問題があるため、可能な限りライブラリはローカルインストールをした方が良いです。
ローカルインストールの方法
以下はyarn
を使った例ですが、例えばexpo-cli
だと
yarn add expo-cli --dev
としてインストールします。
この後、インストールしたプロジェクト内ではyarn expo --version
などとしてコマンドを利用することができるようになります。
グローバルインストールした場合と比較して、コマンドを実行するのにyarn
が余分に必要になりますが、上記2点の大きな問題を解決することができるため開発者全員にお勧めしたい方法です。
おわりに
開発は1人で行う場合でも、複数プロジェクトの開発をすることも見越して、なるべくグローバルインストールが必要なライブラリは避けた方が良いです。ぜひ何も考えずにグローバルインストールを行ってきた方は、これを機会に、可能なものはローカルインストールに切り替えてみてください。