npmの-"g"オプション


私、node.jsは初心者で、こんなことも知らなかった。調べればすぐにわかる事でも少しずつ書き留めていく。

npmの"-g"オプション=パッケージスコープ

npmを使ってパッケージをインストールする際に"-g"オプションは以下のように機能する。

  • -gを使ってインストールしたパッケージはその環境のnode.jsの機能拡張と同義という事。
  • -gを使用せずインストールしたパッケージはプログラム/プロジェクト自体の拡張パッケージになるという事。

というように、"-g"の有無により、インストールしたパッケージのスコープが変わる。
私が考える"-g"のメリデメは以下の通り。

  • メリット1:今使っている環境で他のプログラム/プロジェクトでも利用(共有)できる
  • メリット2:プログラム/プロジェクト毎のパッケージが不要になるのでディスク領域の消費を抑えることができる。
  • デメリット1:他の環境にデプロイする場合、その環境にも事前に対象パッケージをインストールしておく必要がある。(インストールステップが増える)
  • デメリット2:プロジェクト毎に異なるバージョンを利用したい場合に対応できない??(ほんと?)

私の感覚では、各プロジェクトではそれぞれ必要なパッケージをきちんと管理したほうが良いと思うので、できるだけ"-g"は利用したくないと考える。
今後どのような場面に出くわすかによって、この記事で書いた内容が覆ることがあるかもしれないが、現時点では"-g"なしインストールの方針で行く。