@@ -3,9 +3,9 @@ sample-ui-react
33
44### はじめに
55
6- [ BootStrap] ( http://getbootstrap.com/ ) / [ React.js] ( https://facebook.github.io/react/ ) を元にしたプロジェクトWebリソース( HTML/ CSS/JS) です。SPA( Single Page Application) モデルを前提としています。
6+ [ BootStrap] ( http://getbootstrap.com/ ) / [ React.js] ( https://facebook.github.io/react/ ) を元にしたプロジェクト Web リソース ( HTML / CSS / JS ) です。 SPA ( Single Page Application ) モデルを前提としています。
77
8- サンプル確認用のAPIサーバとして [ sample-boot-hibernate] ( https://github.com/jkazama/sample-boot-hibernate ) を期待します。
8+ サンプル確認用の API サーバとして [ sample-boot-hibernate] ( https://github.com/jkazama/sample-boot-hibernate ) を期待します。
99
1010` ※ライブラリではなく上記ライブラリを用いた単純な実装サンプルです。 `
1111
@@ -14,86 +14,82 @@ sample-ui-react
1414ビルドは [ Node.js] ( http://nodejs.jp/ ) + [ Webpack] ( https://webpack.github.io/ ) + [ Gulp] ( http://gulpjs.com/ ) で行います。以下の手順でインストールしてください。
1515
16161 . Node.js の[ 公式サイト] ( http://nodejs.jp/ ) からインストーラをダウンロードしてインストール。
17- 1 . 「` npm install -g gulp ` 」を実行してGulpをインストール 。
18- - Macユーザは「 ` sudo npm install -g gulp ` 」 で。
19- 1 . コンソールで本ディレクトリ直下へ移動後、「 ` npm install ` 」を実行してGulpライブラリをインストール 。
20- - Windowsユーザは「 npm install --msvs_version=2013」 。理由は後述
17+ 1 . 「 ` npm install -g gulp ` 」 を実行して Gulp をインストール 。
18+ - Mac ユーザは 「 ` sudo npm install -g gulp ` 」 で。
19+ 1 . コンソールで本ディレクトリ直下へ移動後、 「 ` npm install ` 」 を実行して Gulp ライブラリをインストール 。
20+ - Windows ユーザは 「 npm install --msvs_version=2013 」 。理由は後述
2121
2222---
2323
24- 標準で利用想定の[ BrowserSync] ( http://www.browsersync.io/ ) はLiveReloadよりも同期が早く開発生産性に大きく寄与しますが、Windowsユーザの場合は [ Python2.7] ( https://www.python.org/ ) と [ Visual Studio 2013 Update N] ( https://www.visualstudio.com/downloads/download-visual-studio-vs ) のインストールが必須となります。
25- * ※` Express 2013 for Desktop ` を推奨します。( 手元で試したところ` Community 2015 ` では正しく動きませんでした) *
24+ 標準で利用想定の [ BrowserSync] ( http://www.browsersync.io/ ) は LiveReload よりも同期が早く開発生産性に大きく寄与しますが、 Windows ユーザの場合は [ Python2.7] ( https://www.python.org/ ) と [ Visual Studio 2013 Update N] ( https://www.visualstudio.com/downloads/download-visual-studio-vs ) のインストールが必須となります。
25+ * ※ ` Express 2013 for Desktop ` を推奨します。 ( 手元で試したところ ` Community 2015 ` では正しく動きませんでした ) *
2626
2727### 動作確認
2828
2929動作確認は以下の手順で行ってください。
3030
31- 1 . cloneした [ sample-boot-hibernate] ( https://github.com/jkazama/sample-boot-hibernate ) を起動する。
31+ 1 . clone した [ sample-boot-hibernate] ( https://github.com/jkazama/sample-boot-hibernate ) を起動する。
3232 - 起動方法は該当サイトの解説を参照
33- - application.ymlの ` extension.security.auth.enabled ` をtrueにして起動すればログイン機能の確認も可能
34- 1 . コンソールで本ディレクトリ直下へ移動し、「 ` gulp ` 」 を実行
35- - 確認用のブラウザが自動的に起動する。うまく起動しなかったときは「 http://localhost:3000」 へアクセス
33+ - application.yml の ` extension.security.auth.enabled ` を true にして起動すればログイン機能の確認も可能
34+ 1 . コンソールで本ディレクトリ直下へ移動し、 「 ` gulp ` 」 を実行
35+ - 確認用のブラウザが自動的に起動する。うまく起動しなかったときは 「 http://localhost:3000 」 へアクセス
3636 - 画面が白く表示されてしまう時はブラウザの更新を押してみてください
37- - webpackのビルドが間に合っていない可能性が高いため
37+ - webpack のビルドが間に合っていない可能性が高いため
3838
3939### 開発の流れ
4040
41- 基本的にテンプレート( .jade/ .scss/ .js( ES6))をWebリソース( .html/ .css/ .js)へGulp/Webpackでリアルタイム変換させながら開発をしていきます。
42- 動作確認はGulpで独自にWebサーバを立ち上げた後 、ブラウザ上で行います。
41+ 基本的にテンプレート ( .jade / .scss / .js ( ES6 ) ) を Web リソース ( .html / .css / .js ) へ Gulp / Webpack でリアルタイム変換させながら開発をしていきます。
42+ 動作確認は Gulp で独自に Web サーバを立ち上げた後 、ブラウザ上で行います。
4343
4444#### 各種テンプレートファイルの解説
4545
4646- [ Jade] ( http://jade-lang.com/ )
47- - HTMLを生成するテンプレートツール。公式サイトTOPにある簡素な記法が特徴 。
47+ - HTML を生成するテンプレートツール。公式サイト TOP にある簡素な記法が特徴 。
4848- [ Sass (SCSS)] ( http://sass-lang.com/ )
49- - CSS表記を拡張するツール。変数やmixin 、ネスト表記などが利用可能。
49+ - CSS 表記を拡張するツール。変数や mixin 、ネスト表記などが利用可能。
5050- [ ES6 with Babel] ( https://babeljs.io/ )
51- - ES6用のPolyfill。ES5でもES6風に記述が可能 。
51+ - ES6 用の Polyfill 。 ES5 でも ES6 風に記述が可能 。
5252
53- #### 各種テンプレートファイルの変更監視 / Webサーバ起動
53+ #### 各種テンプレートファイルの変更監視 / Web サーバ起動
5454
55- + コンソールで本ディレクトリ直下へ移動し、「 ` gulp ` 」 を実行
55+ + コンソールで本ディレクトリ直下へ移動し、 「 ` gulp ` 」 を実行
5656
5757### 配布用ビルドの流れ
5858
59- 配布リソース生成の流れは開発時と同様ですが、監視の必要が無いことと、配布リソースに対するminifyやrevisonの付与などを行う必要があるため 、別タスク( build-prod) で実行します。
59+ 配布リソース生成の流れは開発時と同様ですが、監視の必要が無いことと、配布リソースに対する minify や revison の付与などを行う必要があるため 、別タスク ( build-prod ) で実行します。
6060
61- #### 配布用Webリソースのビルド / リリース
61+ #### 配布用 Web リソースのビルド / リリース
6262
63- + コンソールで本ディレクトリ直下へ移動し、「 ` gulp build-prod ` 」 を実行
64- + ` public ` ディレクトリ直下に出力されたファイルをリリース先のディレクトリへコピー
63+ + コンソールで本ディレクトリ直下へ移動し、 「 ` gulp build-prod ` 」 を実行
64+ + ` public ` ディレクトリ直下に出力されたファイルをリリース先のディレクトリへコピー
6565
6666### ポリシー
6767
68- - JS/CSSの外部ライブラリはbowerで管理する
69- - グローバルスコープの汚染を許容する
70- - bowerが適切なサポートを提供していない時はpackage.json経由の管理(bundler.js側に展開)も許容
71- - プロジェクト固有のJSはWebpackを利用して生成する
68+ - JS / CSS の外部ライブラリは npm で管理する
69+ - jQuery や Bootstrap 等、グローバルスコープの汚染を許容するものはビルド済みリソースをそのまま流用する
70+ - プロジェクト固有の JS は Webpack を利用して生成する
7271 - グローバルスコープの汚染を許容せずにモジュールベースで開発する
73- - 外部ライブラリのアクセスは従来通りグローバルな名前空間を用いる
74- - ReactはFluxのアーキテクチャを参考に実装する
75- - ページ遷移周りはReactRouterを利用
76- - ReactコンポーネントはES6のクラスベースで実装(see /js/platform/react.js)
77- - FluxはFacebookのサンプルを参考にしつつ実装(see /js/platform/react-flux.js)
78- - JSXはjade(templates)へ切り出してreact-jade経由で読込アプローチ(ここはベタ書きでも良いかも)
79- - いくつか代表的なUIパーツは準備(see /js/platform/react-ui.js)
80- - Fluxの良い実装が出てきたら自作せずにそちらを利用する
72+ - React は Flux のアーキテクチャを参考に実装する
73+ - ページ遷移周りは react-router を利用
74+ - React コンポーネントは ES6 のクラスベースで実装 ( see /js/platform/react.js )
75+ - Flux は Facebook のサンプルを参考にしつつ実装 ( see /js/platform/react-flux.js )
76+ - いくつか代表的な UI パーツは準備 ( see /js/platform/react-ui.js )
77+ - Flux の良い実装が出てきたら自作せずにそちらを利用する
8178
8279#### ディレクトリ構成
8380
8481ディレクトリ構成については以下を参照してください。
8582
8683```
87- bower.json … bower dependency
88- gulpfile.coffee … gulp configuration
84+ gulpfile.babel.js … gulp configuration
8985package.json … npm dependency
9086public … deploy resources (auto generate)
9187 css
9288 - style.css … from source/css
9389 fonts … icon font
9490 js
9591 - bundler.js … from source/js (by Webpack)
96- - vendor.js … from bower
92+ - vendor.js … from vendor dist resource
9793 index.html … from source/html
9894source
9995 css … css template files [SCSS]
@@ -109,32 +105,32 @@ source
109105 - react-ui.js … react ui parts
110106 - react.js … project react extension
111107 stores … flux store
112- templates … jade template (jsx)
113108 - app.js … root page
114109 - main.js … SPA entry
115110 - routes.js … SPA routing
116111 static … static resources (.png/.ico/robots.txt etc)
117112```
118113
119- ※gulpコマンドを実行して変更監視を有効にしておくと、source配下のリソースを修正した際にリアルタイムでpublic直下のファイルが更新されていきます 。
114+ ※ gulp コマンドを実行して変更監視を有効にしておくと、 source 配下のリソースを修正した際にリアルタイムで public 直下のファイルが更新されていきます 。
120115
121116### 依存ライブラリ
122117
123118| ライブラリ | バージョン | 用途/追加理由 |
124119| ----------------------- | -------- | ------------- |
125- | ` react ` | 0.14.+ | アプリケーションのUI機能を提供 |
126- | ` react-router ` | 0.13.+ | React.jsのSPAルーティングサポート |
127- | ` eventEmitter ` | 4.3.+ | イベント連携ライブラリ |
128- | ` flux ` | 2.1.+ | Facebook Fluxライブラリ |
129- | ` lodash ` | 3.10.+ | 汎用ユーティリティライブラリ |
130- | ` moment ` | 2.11.+ | 日時ライブラリ |
131- | ` bootstrap-sass-official ` | 3.3.+ | CSSフレームワーク |
132- | ` bootstrap-datepicker ` | 1.4.+ | 日時入力ライブラリ |
120+ | ` superagent ` | 1.4.+ | HTTP 連携ライブラリ |
121+ | ` react ` | 0.14.+ | アプリケーションの UI 機能を提供 |
122+ | ` react-dom ` | 0.14.+ | アプリケーションの UI 機能 ( DOM ) を提供 |
123+ | ` react-router ` | 0.13.+ | React.js の SPA ルーティングサポート |
124+ | ` react-mixin ` | 3.0.+ | Reactクラス利用時のMixin拡張 |
125+ | ` wolfy87-eventemitter ` | 4.3.+ | イベント連携ライブラリ |
126+ | ` flux ` | 2.1.+ | Facebook Flux ライブラリ |
127+ | ` lodash ` | 4.6.+ | 汎用ユーティリティライブラリ |
128+ | ` dateformat ` | 1.0.+ | 日時ライブラリ |
129+ | ` jquery ` | 2.2.+ | DOM 操作サポート |
130+ | ` bootstrap-sass ` | 3.3.+ | CSS フレームワーク |
133131| ` fontawesome ` | 4.5.+ | フォントアイコンライブラリ |
134- | ` superagent ` [ npm] | 1.4.+ | HTTP連携ライブラリ |
135- | ` react-mixin ` [ npm] | 3.0.+ | Reactクラス利用時のMixin拡張 |
136132
137133### License
138134
139- 本サンプルのライセンスはコード含めて全て* MIT License* です。
135+ 本サンプルのライセンスはコード含めて全て * MIT License* です。
140136プロジェクト立ち上げ時のベース実装サンプルとして気軽にご利用ください。
0 commit comments