配布されているライブラリーを最小ツールに通すと、ライセンスあたりの扱いで面倒なことになる。CSSの場合は壊れる可能性を否定できないことは意識しなければならない。いうことで重い腰を上げて、最小化してから連結するような工夫をソース・マップを維持することを前提にこのウェブサイトで実験し始めた。JavaScriptファイルのビルドをGruntでやるとして、最小化についてはソース・マップのサポートは問題ないので、いつも通りgrunt-contrib-copyとgrunt-contrib-uglifyを使うことにする。最後に連結する時にソース・マップを維持できるのかというのが最大の問題だったが、7月にソース・マップのサポートがgrunt-contrib-copyへ入っていたため、結果的にはこれを使うだけで良かった。タスクの手順的には以下のようになる。公開ディレクトリーへソース・マップ・ファイルを含めてコピーこれを踏まえて、Bowerでインストールしたlib-a.min.jsとlib-b.min.js、そして自分で書いたfoo.jsとbar.jsを最小化してから連結し、最終的にmain.min.jsを作るとする。タスクの設定は以下のようになることだろう。]);};concat:jsとcopy:prejs以外はほぼポータブルなタスク設定になっている。build:jsと実行すると、最終的にbuild/js/ディレクトリーへ以下のようにファイルが作成される。bar.jsbar.min.jsbar.min.js.mapfoo.jsfoo.min.jsfoo.min.js.maplib-a.jslib-a.min.jslib-a.min.js.maplib-b.jslib-b.min.jslib-b.min.js.mapmain.min.jsmain.min.js.map中間のソース・マップ・ファイルはちゃんとまとめられているので、実際にはマークされているファイルだけあれば良い。設定が汎用性のない複雑なものになってしまうので、全部コピーしておく方が面倒がないだろう。なければソース・マップ・ファイルへsourcesContentで元ソースを含めてしまうのが良い。この辺りはもうちょっと運用しないとどうするのが最良なのかは見えてこなさそうだ。最小化後に連結するという観点の考察がウェブにはまだないので手探りでやることになるのが一番の壁だろう。取るに足りないとは思うが、最終ファイルが数バイトから数十バイト増えることは挙げておく。利点としては、ライブラリーのライセンスや著作権者情報など消すべきでないものが確実に残ることと、ライブラリーが動作が確認されている状態のままで連結されることが挙げられる。消すべきでないものが残るということは、つまりビルド・タスク側でいわゆるバナーなどと呼ばれている先頭のコメントのことを考えなくて良いということでもある。欠点と比較する限り、得られるものは大きいと言える。CC/BYTwitterRSSながしまきょう。