グローバルインストール vs ローカルインストール:混乱しないためのルールと実践例

Node.jsやnpmでのパッケージ管理において、よく話題になる「グローバルインストール」と「ローカルインストール」の違い。初心者が混乱しやすいこの2つの使い分けには、明確なルールがあります。この記事では、それぞれのインストール方法の特徴や違い、混乱を避けるための判断基準、そして実践的な活用例を詳しく解説します。
目次
グローバルインストールとローカルインストールの違いとは?
npm install
には2つの主要な使い方があります。
グローバルインストール(-g
オプション付き)
npm install -g eslint
- 特徴:どのプロジェクトからでも使えるように、OS全体にインストールされます。
- 用途:コマンドラインツールやCLI系のユーティリティ(例:
eslint
、vite
、npm-check-updates
)など、どこからでも呼び出す必要があるものに最適。
ローカルインストール(カレントディレクトリに)
npm install eslint --save-dev
- 特徴:プロジェクトの
node_modules
フォルダにのみインストールされます。 - 用途:そのプロジェクト内だけで使用するライブラリや開発ツールに使用(例:
react
、tailwindcss
、webpack
など)。
どちらを使うべき?判断ルール4つ
- CLIツールかどうか?
- ✅ CLIツール(例:
eslint
) → グローバルでもOK(ただし後述の理由でローカル推奨) - ✅ ライブラリ(例:
lodash
、axios
) → ローカル一択
- ✅ CLIツール(例:
- プロジェクトごとにバージョンを管理したいか?
- ✔ プロジェクト依存のバージョンを固定したいならローカル
- ❌ グローバルにすると他のプロジェクトとバージョン競合が起きやすい
- CI/CDやチーム開発で使うか?
- ✅ 再現性が必要 → ローカル
- グローバル依存はGitに残らないためチーム開発では非推奨
- npxで代替できるか?
npx eslint
のように、一時的にパッケージを実行できるため、グローバルインストールせずに済むことも多い
実践例:eslintを使った違いの比較
パターン① グローバルインストール
npm install -g eslint
eslint src/index.js
- ❌ 他の人の環境にeslintが入っていないと動かない
- ❌ プロジェクトにeslintのバージョン情報が残らない
パターン② ローカルインストール+npx
npm install --save-dev eslint
npx eslint src/index.js
- ✅
package.json
に記録され、再現性が高い - ✅ CI/CDでも動作保証される
注意点:同名コマンドの競合に注意
たとえば、グローバルとローカルの両方に eslint
を入れていると、どちらのバージョンが使われるかは以下のような順序になります:
node_modules/.bin/eslint
- 環境変数
PATH
に登録されているグローバルのeslint
解決策としては、**常にnpx eslint
**と書くようにしておくと、ローカル版が優先されます。
まとめ1:グローバル vs ローカルの使い分けルール
- ✅ CLIツールでもできるだけローカルにして、
npx
で実行するのが基本 - ✅ チーム開発・CI/CDではローカル以外はNG
- ✅ グローバルは、個人でよく使うCLIツールだけにとどめよう
明確なルールを持つことで、環境依存のトラブルを防ぎ、プロジェクトの再現性・保守性を高めることができます。
まとめ2:グローバルとローカルの違いを理解してトラブルを防ごう
npmのインストール方式を正しく使い分けることで、開発効率とプロジェクトの安定性が大きく変わります。「なぜ動かない?」を防ぐためにも、原則はローカルインストール&npx実行。これを基本に据えておけば、今後のプロジェクト管理も格段にスムーズになります。

Contact
ウェブサイトの制作や運用に関わる
お悩みやご相談
お気軽にお問い合わせ下さい
ウェブサイトと一口に言っても、企業サイトやECサイト、ブログ、SNSなど、その“カタチ”は目的に応じてさまざまであり、構築方法や使用する技術も大きく異なります。株式会社コナックスでは、お客様のご要望やブランドの個性を丁寧に汲み取り、最適なウェブサイトの“カタチ”をご提案いたします。
デザイン、ユーザビリティ、SEO対策はもちろん、コンテンツ制作やマーケティング戦略に至るまで、あらゆるフェーズでお客様のビジネスに寄り添い、成果につながるウェブサイトづくりをサポートいたします。私たちは、ウェブサイトの公開をゴールではなくスタートと捉え、お客様のビジネスの成功に向けて共に伴走してまいります。