【Laravel】Laravel-Mix の npm run prod で minify したくないとき【メモ】

意外に見当たらなかったのでメモ






webpack.mix.js に以下を追加する

mix.webpackConfig({
  optimization:{
      minimize: false
  }
});



どういうときに使うの?

minifyするとメンテナンス性が落ちますが、普通は、resources ディレクトリにあるコンパイル前のファイルを触るので、コンパイル後のファイルがメンテナンスできなくても特に困りません。つまり、コンパイルするけどminifyしたくないというのは殆どないシチュエーションなのですが、とあるプロジェクトで以下の状況になって必要を感じました。


  1. public/js 以下にファイルを配置して直接編集している
  2. 1のファイルをコンパイル対象にすべく、resources/js 以下にコピーし、コンパイルを設定
  3. ついでにコンパイル時に環境変数に置き換えるように設定を追加
  4. 2の更新内容がマージされるまでに元のファイルが更新されてしまう
  5. コンフリクトが発生、解消が大変


minify されているとコンフリクトが発生したときに問題点を見て判断出来ないっていう。



しかし根本的に必要なことは

コンパイル対象にする変更と、ファイルの更新を一緒にやるから悪いんですね。

「public/js 以下のファイルをコンパイル対象にする」という部分だけをタスクとして切り出して、それだけ急ぎマージして開発体制を切り替える。そのあとでゆっくり対象ファイルを編集していけばコンパイルへの対処も簡単です。

まあそれが許されないぐらいプロジェクトが混乱してた(改善すべき点が大量にあるけれど、クライアントからの要望への場当たり対応もしなくてはならない的な)と言うことでもあるんですが、どうしてもアレだったらこういう抜け道もありますよということで。普通は minify しますけどね。



参考