npm installとpackage.jsonをひも解く!オプションと依存関係について

npm installとpackage.jsonをひもとく!

ウェブカツでも学んだpackage.jsonの書き方(読み方?)ですが、もうすっかり忘れたので、備忘録として残しておきます。

npm install のときにつけるオプション

npm installは、指定されたパッケージとそれに依存する様々なパッケージを、パソコンやプロジェクトにインストールすることができるコマンドです。

npm install

現在のディレクトリ内にあるpacckage.jsonをもとに、node_modules配下に依存関係のあるパッケージがインストールされます。

npm install パッケージ名

指定されたパッケージ及び依存関係にあるパッケージが、現在のディレクトリのnode_modules配下にインストールされます。

npm install -g パッケージ名

指定されたパッケージ及び依存関係にあるパッケージがグローバルにインストールされます。

個々のプロジェクトがローカル、パソコン全体がグローバルです。macの場合は、 グローバルインストールされたものは/usr/local/lib/node_modules/ 配下に入っています。

「パスを通す」ことで、グローバルにインストールしたパッケージのコマンドを使うことができるようになります。

npm install – – save パッケージ名

指定されたパッケージ及び依存関係にあるパッケージがローカルのnode_modules配下にインストールされ、package.jsonのdependenciesの中に追記されます。

npm install – – save – dev パッケージ名

指定されたパッケージ及び依存関係にあるパッケージがローカルのnode_modules配下にインストールされ、package.jsonのdevDependenciesの中に追記されます。

package.jsonのdependenciesとdevDependencies

「dependence」というのは「依存」という意味です。dependenciesは複数形なので、依存の関係を表します。

devDependencies

development時、つまり開発のときにのみ使用するパッケージがここに記載されます。

例えば、sassのコンパイルをするgulpなどがこれにあたります。

タスクランナー、テストツールなどですね。

dependencies

一方で、dependenciesに記載されるパッケージは実行するときに使用するものです。

ですが、これに該当するパッケージって何があるのでしょうか。

例えばVue.jsにしてもaxiosにしても、開発時にビルドされています。

実行時には、ひとつのjsファイルとなっているので、どちらも通常devDependenciesに記載されます。

そのプロジェクトがAPIであったり、プラグインであったり、ユーザーによって使い方が柔軟なアプリケーションの場合に、dependenciesに記載する必要が出てくるのでしょうか。

調べてみても「例えばこのパッケージが」という情報が出て来ず分からずじまいです…。

ちなみにnpmの公式では、vue-routerやreact-reduxはsaveオプション、つまりdependenciesとしてインストールするように書かれています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)