【npm】グローバルインストールは控えるべき

グローバルインストールとローカルインストール

npmのインストール先の指定として「グローバル」と「ローカル」の2種類が存在する。

グローバルとローカルの違い

グローバルインストールをした場合、実行ファイルがパスの指定なしで実行できる。上記でhogeパッケージをインストールした場合コンソール画面でhogeコマンドが直接操作できる。

グローバルにnpmでhoge@1をインストールし、ローカルにhoge@2をインストールした場合、コマンドを直接叩くとグローバルが実行される

ローカルのパッケージを実行する

ローカルにインストールしたhoge@2を実行したい場合はpackage.json-script文にスクリプトを記載すればよい。

npm run-scriptコマンドでhogeを呼ぶ。引数を付ける場合はハイフンを2つ付けるのが一番簡単

グローバルインストールは控えるべき理由

グローバルインストールしたパッケージはpackage.jsonに記載されない。つまりグローバルインストールすることを前提にREADME.mdなどに注意事項を書く必要が出て来るため構築時に作業量が増える。またグローバルインストールのバージョンが管理外になるため同一の環境になる保証がない。開発時に必要なパッケージなどはnpm install --save-devで管理しておくことによりバージョンが統一できるし、npm installのみでインストール作業を終えることができる。

例外的なグローバルインストール

グローバルインストールは悪と言う訳ではない。グローバルインストールが必要な場合もある。例えば

  • IDEが要求してきたとき
  • 実行環境で共通して使用するパッケージがある場合

IDEが要求してきたとき

たまにIDEがグローバルインストールを要求してくる時がある(あった?)。そういうときは素直に従ったほうが得策

実行環境で共通して使用するパッケージがある場合

あえて実行環境と明示した。nodeのデーモン化で使用するforeverなどはグローバルインストールした方がよい。開発環境で使用せず、複数nodeプロジェクトで使用するようなパッケージはグローバルインストールの方が管理しやすい。

まとめ

グローバルインストールは便利だ。実行ファイルまでのパスが省略され気軽に使うことができるし、複数のプロジェクト共通パッケージを使用する場合は容量の節約にもつながる。しかし、それ以上に管理外になるため面倒くさい状態になることが多々あった。git clone、npm installで開発環境が整うようにし、package.jsonのscriptにきちんとスクリプトを書いていれば幸せになれる。

スポンサーリンク
レタリング(大)広告
レタリング(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レタリング(大)広告