npm install --save-dev
の --save-dev
ってなんだ?と思って調べたのでメモ。
--save-dev が気になったきっかけ
Vue.jsのアプリを簡単にS3にアップロードする方法として以下のサイトを参考にしました。(とても簡単で便利)
こちらのサイトの手順に従い、
npm install --save-dev
を実行して gulp をインストールし、
gulp publish
を実行したところ、、、
-bash: gulp: command not found
あれ、動かない。
--save-devってなに?
--save-dev
はローカルインストールするためのコマンドです。
正確に言うと npm install -g
がグローバルインストールのコマンドで、
-g
を付けないとローカルインストールになります。
ローカルインストールしたパッケージをどう実行するの?
ローカルインストールの場合は、
カレントディレクトリにnode_modules
ディレクトリが作られ、そこにパッケージがインストールされます。
そのため、インストールした後は、node_modules/.binディレクトリの配下にあるパッケージを実行する必要があります。
./node_modules/.bin/gulp publish
どういうときに--save-dev をした方がいいの?
あまりnpmを使うことがなかったこともあり、
マニュアルのコピペでグローバルインストールしかしてなかったのですが、
以下の記事を読んでみると、なるべくローカルインストールした方が良さそうですね。
[Node.js] npm installするときはどのパッケージもローカルインストールで十分
もう少し補足すると、
--save-dev
すると、自動で package.json
の devDependencies
に追記されます。
そして dependencies
には追記されません。
git clone
でクローンしてきて、必要なパッケージをインストールするときに
npm install --production
とすると、devDependencies
はインストールされないようです。
逆に dependencies
に入っているとインストールされてしまうので、
githubにソースを公開するときは使い分けできていると親切そうですね。