dependenciesにbabelを入れる
babel等のbuild関係のnpmは、常にdevDependenciesに入れなければならないという勘違いを見かけるので書いておく 分けにくい物を無理やり2つに分ける
dev、test、build、runの4フェーズを
開発(local)、CI、productionの3環境で分けていて
$ npm install
dependenciesとdevDependenciesの両方がインストールされる
$ npm install --production
dependenciesだけがインストールされる
特にtestとbuildの部分は、プラットフォームの都合や運用方法で変わる
ソースコードをherokuに送り込み、heroku上でbuildする
buildに必要なbabelはdependenciesに書くべき
testに必要なmocha等は、devDependenciesに書く Docker imageをオンプレで配布する場合
開発者側でソースコードをbuildする
ユーザーには、build結果だけを使って作成したDocker imageが渡される
babelもmochaもdevDependenciesに書く
dependenciesに何を書くか?
production環境で、アプリケーションをrunさせるまでに必要なライブラリ全てを書く
production環境に渡される物が
ソースコードの場合、buildツールはdependenciesに含まれる
build済みのjsファイルなら、buildツールはdevDependenciesで良い
Herokuのrun直前のデフォルトの動作であるnpm install --productionを無理やり上書きして、devDependenciesをインストールしてしまう例をたまに見るので書きましたshokai.icon