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できようにしてください」とお願いしておいてまだそのあたりは作ってません。すいません、次回です。

`/`にHTMLでGETすると`public/index.html`を返すというのは暗黙の了解だと思うので、将来の混乱を避けるためにも`public/`以下にあるべきと思う。

直接吐くか`cp`するかはおまかせ