Flask+Twitter Bootstrapで作ることが非常に増えている。LESSを弄りたいときに
<link rel="stylesheet/less" href="less/style.less"> <script src="js/libs/less-1.2.1.min.js"></script>
とかやればいいんだけど、IEだとレンダリングがやたらと遅くなるので本番環境ではcssにコンパイルすることになるため、この部分を書きなおすのは面倒くさい。
だったら開発環境でも最初から更新時にCSSコンパイルするとか裏でよろしくやってくれる方法を導入したいなぁということで調べてみた。
これらは拡張子がcssのurlにアクセスした時にlessファイルを探してcssファイルが存在しなかったり、lessが変更されている(更新日時とかハッシュを見ている)ときにコンパイルする用になっている。before_requestのところで処理している。
難点は、cssとlessが同じディレクトリにあることを決め打ちしているところかなぁ。僕の場合bootstrapは別に管理しているのでコンパイル先を自分で決められないのは困る。
もう少し統一的に管理できそなうなものにFlask-Funnelというものがあったが、ちょっと面倒くさそう。これだったらGruntとかYeomanみたいなnode.js製の管理ツールでもいいかなぁと。
結論
Initializrのbootstrapだったら変更検知してstyle.lessをコンパイルすればいいのでwatchdog使えばいいかなぁ。grunt.jsでもいいや。
Githubのtwitter bootstrapだったらMakefileにwatchがついているのでそれを使ってもいいなぁと。ちなみにカスタマイズはここらへんを参考にしている。