服務端渲染的React手腳架css
這個啓動包的設計是爲了讓你使用一整套最新最酷的前端技術,全部都是可配置,富特性,基於webpack已經提供代碼熱加載,使用sass預處理css,單元測試,代碼覆蓋率報告,代碼分割等等更多。html
這個項目最主要的目的是儘量果斷的保留。目的不是要你必定按照這個結構去完成你的項目,諧在使前端開發更健壯,更簡單還有最重要的是更快樂。你能夠得到如下的全部特性!前端
最後,若是沒有你們的貢獻,這個項目是不可能如此健壯的,因此,謝謝你們。node
以爲不錯的話,請Star一下本項目,這是對做者最大的支持。react
全部相關庫已準備好,隨時等待調用。webpack
reactnginx
reduxgit
react-routergithub
node ^4.5.0
npm ^3.0.0
確認好你的環境配置,而後就能夠開始如下步驟。
$ git clone https://github.com/bodyno/react-starter-kit.git $ cd react-starter-kit $ npm install # Install project dependencies $ npm start # Compile and launch
若是一切順利,你會看到以下:
<img src="http://i.imgur.com/zR7VRG6.pn... />
開發過程當中,你用得最多的會是npm start
,可是這裏還有不少其它的處理:
npm run <script> |
解釋 |
---|---|
start |
服務啓動在3000端口,代碼熱替換開啓。 |
compile |
編譯程序到dist目錄下(默認目錄~/dist)。 |
dev |
與npm start 相同, 可是啓動nodemon守護進程。 |
dev:no-debug |
與npm run dev 可是禁用devtool(開發工具)。 |
test |
開啓Karma測試並生成覆蓋率報告。 |
test:dev |
開啓Karma測試並監聽改變隨時從新測試,可是生成覆蓋率報告。 |
deploy |
啓動代碼檢查,測試,若是成功,編譯到dist目錄下。 |
deploy:dev |
與deploy 相同,可是NODE_ENV 值爲"development"。 |
deploy:prod |
與deploy 相同,可是NODE_ENV 值爲"production"。 |
lint |
檢查全部.js文件是否規範。 |
lint:fix |
檢查全部.js文件是否規範並修復它們。 更多 |
這個項目的結構使用的是 fractal(不規則碎片形:適合大型項目)*,方法的分組主要是依照特性而不是文件類型。注意,這個目錄結構只是一個指引,並不必定要按這個來。這種結構諧在讓程序更容易擴展,想了解更多請點擊這裏。
. ├── bin # 啓動腳本 ├── blueprints # redux-cli的藍圖 ├── build # 全部打包配置項 │ └── webpack # webpack的指定環境配置文件 ├── config # 項目配置文件 ├── server # Koa 程序 (使用 webpack 中間件) │ └── main.js # 服務端程序入口文件 ├── src # 程序源文件 │ ├── main.js # 程序啓動和渲染 │ ├── components # 全局可複用的表現組件(Presentational Components) │ ├── containers # 全局可複用的容器組件 │ ├── layouts # 主頁結構 │ ├── static # 靜態文件(不要處處imported源文件) │ ├── styles # 程序樣式 │ ├── store # Redux指定塊 │ │ ├── createStore.js # 建立和使用redux store │ │ └── reducers.js # Reducer註冊和注入 │ └── routes # 主路由和異步分割點 │ ├── index.js # 用store啓動主程序路由 │ ├── Root.js # 爲上下文providers包住組件 │ └── Home # 不規則路由 │ ├── index.js # 路由定義和代碼異步分割 │ ├── assets # 組件引入的靜態資源 │ ├── components # 直觀React組件 │ ├── container # 鏈接actions和store │ ├── modules # reducers/constants/actions的集合 │ └── routes ** # 不規則子路由(** 可選擇的) └── tests # 單元測試
全部的css和sass都支持會被預處理。只要被引入,都會通過PostCSS壓縮,加前綴。在生產環境下會提取到一個css文件下。
這個項目的服務端使用Koa。須要注意的是,只有一個目的那就是提供了webpack-dev-middleware
和 webpack-hot-middleware
(代碼熱替換)。使用自定義的Koa程序替換webpack-dev-server,讓它更容易實現universal 渲染和爲了避免使這個包過於龐大。
Babel被配置babel-plugin-transform-runtime可讓代碼更優化。另外,在生產環境,咱們使用react-optimize來優化React代碼。
在生產環境下,webpack會導出一個css文件並壓縮Javascript,並把js模塊優化到最好的性能。
若是你正在使用nginx處理程序,確保全部的路由都直接指向 ~/dist/index.html
文件,而後讓react-router處理剩下的事。若是你不是很肯定應該怎麼作,文檔在這裏。Express在腳手架中用於擴展服務和代理API,或者其它你想要作的事,這徹底取決於你。
若是沒有你們的貢獻,這個項目是不可能誕生的, 感謝全部爲這個項目作出貢獻的人。