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

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

–save-dev(-s)

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

package.jsのdevDependenciesの項目に記述される。

–save(-S)

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

package.jsではdependenciesに記述される。


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

また、npmコマンドの代替としてyarnがあるが、そちらの場合はyarn add packageで上記における後者、yarn add package --devで前者のへのインストールが行える。

-g(–global)

ローカルマシン(グローバル)にパッケージをインストールする場合に用いるオプション。コマンドラインとして使用するパッケージの場合はこれをつける。

グルーバルにインストールされるので、どのディレクトリでもそのコマンドは利用できる。

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