npm installの–saveと–save-devの違いと-g

よく理解していなかったのでメモ。

–save-dev

開発時に利用するパッケージの場合は--save-devを指定。
例えばテストツールのjasmine-coreなんかを利用するときはこちら。
package.jsのdependenciesの項目に記述される。

–save

アプリケーションの実行に必要なパッケージは--saveを指定。
例えば日付解析を行うmomentは、アプリケーションの動作自体に必要なのでこちらになる。
package.jsではdevDependenciesに記述される。

両者ともpakcage.jsonに依存関係として追加される。
これにより、プロジェクトの開発時にnpm installで簡単に依存関係が解決できる。

-g(–global)

ローカルマシン(グローバル)にパッケージをインストールする場合に用いるオプション。
コマンドラインとして使用するパッケージの場合は、これをつける。
グルーバルにインストールされるので、どのディレクトリでもそのコマンドは利用できる。

一方、コマンドラインで使用するようなパッケージでも、-gはつけなくてもインストールはできる。この場合は、カレントディレクトリにインストールされるため、そのディレクトリ内でのみ、コマンドパッケージが利用できる。