eInit frontend

# フロントエンドのビルド
## 必要なもの
- node( endaamanのはv0.10.29だった )
- npm( endaamanのは1.5.0-alpha-4だった )
- globalなnode modules( -g オプションでグローバルにぶち込むもの )
    - grunt-cli
    - coffee-script
    - autoprefixer
    - bower
- localなnode modules( package.jsonに記述 )
- bower components( bower.jsonに記述 )
- libsass と sassc


### node & npm
Ubuntuだとaptになるか分からないが、endaamanはHomebrewなので登録されたバージョンが違う可能性があるが多分大丈夫だと思う(楽観視)

### globalなnode modules
```
npm install -g grunt-cli
npm install -g coffee-script
npm install -g autoprefixer
npm install -g bower
```


### localなnode modules
package.jsonがある場所で
```
npm install
```

### bower components
install先はpublic/bower_componentsで(see .bowerrc)、基本的に開発時は全部公開される場所におく。productionにするときは公開するフォルダを /public から /dist だかに変えて、まとめてconcat & minifyしてone fileにする予定。
```
bower install
```


### libsass & sassc
Rubyのsassはクソ遅いのでlibsassを使ってます。詳しくは <http://libsass.org/>


## ファイルをビルド
Gruntfile.coffeeがある場所で
```
grunt
```
ビルドの後にwatchタスクが走り、フロントで使うファイルに変更があるたびにコンパイル & ブラウザリロードされてアヘ顔([LiveReload](https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei)を入れておく必要があります)。


## 今のところのフロント開発の流れ
シェルは2つ起動しておき、片方でrails s、もう片方でgruntって感じです。Gruntからrails サーバーの起動をすると言ったな、あれは嘘だ。

「先にUserをgetできようにしてください」とお願いしておいてまだそのあたりは作ってません。すいません、次回です。

やっぱりおかしいですかね。自分でも若干奇妙なことをしていると思ってました。
index.htmlは、サーバーが他のURLにマッチしないあらゆるアクセスに対して帰される特殊なものなので、公開される静的なファイルというよりはServer側のファイルに近いのはないか、というのが僕の考えでした。
結局publicにおいても動作は変わらないのでpublicに吐き出すように変えておきますか？