2012/12/31

Yeoman ServerでURL Rewrite


フロントエンド開発のワークフローをサポートしてくれるコマンドラインツールのYeoman(ヨーマン)おじさん、Jenkinsおじさんとは違う形で活躍しています。
チームみんなのJenkinsおじさんに対して、私だけのYeomanおじさんのような感じで。
Yeoman
http://yeoman.io/ 
https://github.com/yeoman/yeoman
Gruntfile.js/.coffeeにワークフローを定義すれば多彩な才能を発揮してくれるんですが、ウチでは、CoffeeScript/LESSのコンパイル、.html/.js/.cssのconcat/minify、mochaテスト実行、ローカルサーバ、LiveReloadによるファイル編集時の自動リロード...等々でお世話になってます。

で、そんなYeomanおじさんは
$ yeoman server
とコマンド入力すると http://localhost:3501でローカルサーバ起動してくれるのですが、このローカルサーバでは、mod_rewrite相当の手段が見当たりませんでした(ある?)。
HTML5 Hisotry APIを使ったSingle Page Applicationで、URLを更新した後のリロードすると404になって困ってました。

YeomanのGithub Issueを見ると同じような要望は度々上がっているようで、マージされてませんが実装されてる方はいるようです。
今のところ私は以下を参考にv0.9.6の yeoman/tasks/server.js へパッチを当て、Gruntfile.jsにrewriteルールを記載した形で対応しています。開発用のローカルサーバなので。
Yeoman Server and Backbone/BBB pushState
https://github.com/yeoman/yeoman/issues/468
参考まで。