概要
最近のモダンなリポジトリなどから、よくあるisomorphic JavaScriptなプロジェクト構成をまとめてみた。
プロジェクト構成
クライアントサイド
React
クライアントサイドにはReactを使用しているものが多い。
クライアントサイドアーキテクチャ
Flux
設計パターンには例によってReact.jsと相性の良いFluxを用いる。フレームワークはReduxが人気。
クライアントサイドルーティング
React Router
これはほぼ一択な気がする。
サーバーサイド
Express, Koa
Hapiも見ないわけではないが、主流なのはこの2つ。
ES6コンパイラ
Babel
コンパイラはBabel一択感がありますね。
モジュール管理
Webpack
Browserifyも見ないわけではないが、やはりこれから新規で何かつくるのであれば多機能なWebpackを採用するのが主流なよう。
タスクランナー
Gulp
Gruntはもうほとんどみない。
npm
react-starter-kitはGulpを切り捨て、npmおんりーに切り替えている。今後の流れ的には、逆にそのほうが安心なのかもしれない。
テスト
Mocha
Karma上で動かしているものも多い。
Jest
React.jsなのでJestでUnit Testを行うという方針もきれい。
その他
Immutable.js
コレクションを扱うのにImmutable.jsをつかっていることもある。
Relay
relayjs/relay-starter-kitでGraph QLバリバリ使うという手も。
参考
まとめ
まとめると、React+Flux+React Router+Express(Koa)+Babel+Webpack+Gulp(npm)+Mocha(Jest)という構成。
ご意見ください。