package.jsonのdevDependenciesとdependenciesの使い分け
devDependencies
- ライブラリをdev(開発)する時に必要なライブラリを書く
- 開発時のみに必要で実行時には入らないもの
- テストツール - ビルドツール - タスクランナー等
- dependenciesに含まれていても動作はする。ただバンドルファイルの容量が増えたり用途がわからなくなったりするので分けた方がいい
dependencies
- ユーザーとしてライブラリを使う時に必要なライブラリを書く
npm install
- dependenciesとdevDependencies両方がインストールされる
本番環境でnpm installする時
- dependenciesさえインストールされればいいはず
NODE_ENV=production npm install
NODE_ENVにproductionを指定すればdependenciesだけ入る
ちなみにHeorokuはデフォルトdependenciesだけインストールされる設定になっている