なんらかのページやサイトを制作する時、ここ 3 年くらいは基本 Ruby 製のツール(具体的には Jekyll + Jekyll Assets や Middleman)を使い、パッケージは Gemfile 書いて bundler で管理するというのをベースにしていた。なぜ Ruby だったかというと、大まかにいえば次のような理由による。
- 毎回ほぼ必ず使う Sass が Ruby 製だった(当時は)ので、統一しておいた方が色々と楽そう
- アセットのビルドに関するもろもろは Sprockets を使えばよしなにやってくれる
- CSS や JS のパッケージも、自分が必要なものに関しては Rails Assets でだいたい揃う
自分が作業する分に関しては必要なものはこれで賄えるので、特に不満も感じずに1やってたのだけど、一昨年の冬くらいに Rails Assets 2016 年で終了? みたいな話が流れてきて、そのあたりで「どうやらこのセットも安泰ではなさそう…」とか思い始めた。
結局、当面の作業には支障がなかったこともあって、去年は単に情報を追ったりローカル環境で実験するだけにとどめていたのだけど、そうしているうちに使えそうなものとそうでないもの、切り替えても問題なさそうなもの etc. が少し見えてきた気がするので、今年はそろそろ見直してみようかなと。
少なくともフロントエンド系のパッケージは npm でだいたい賄える感じになってきてるっぽいので、もう package.json でまとめて管理した方がよさげ。Sass に関しても今は LibSass とそのラッパーが各言語で出てきてるし、機能面でも Ruby 版と同レベルらしいので、このまま Ruby に縛られてる必要は別になかろう。コンパイル速いのならなおさら。
問題は Sprockets 的な仕組みをどうするか。少し触ってみた感じだと webpack で十分代用可能な気もするけど、Sprockets 4 では npm パッケージを直接 require できるようになるらしいので、場合によってはそちらを利用する(ツールに任せる)かもしれないし…まあその辺は今後の状況を見つつ2、少しずつ整備していくつもり。