摘要:服務(wù)端渲染的手腳架這個(gè)啟動(dòng)包的設(shè)計(jì)是為了讓你使用一整套最新最酷的前端技術(shù),所有都是可配置,富特性,基于已經(jīng)提供代碼熱加載,使用預(yù)處理,單元測(cè)試,代碼覆蓋率報(bào)告,代碼分割等等更多。
Universal React Starter Kit
服務(wù)端渲染的React手腳架
這個(gè)啟動(dòng)包的設(shè)計(jì)是為了讓你使用一整套最新最酷的前端技術(shù),所有都是可配置,富特性,基于webpack已經(jīng)提供代碼熱加載,使用sass預(yù)處理css,單元測(cè)試,代碼覆蓋率報(bào)告,代碼分割等等更多。
這個(gè)項(xiàng)目最主要的目的是盡可能果斷的保留。目的不是要你一定按照這個(gè)結(jié)構(gòu)去完成你的項(xiàng)目,諧在使前端開(kāi)發(fā)更健壯,更簡(jiǎn)單還有最重要的是更快樂(lè)。你可以獲得以下的所有特性!
最后,如果沒(méi)有大家的貢獻(xiàn),這個(gè)項(xiàng)目是不可能如此健壯的,所以,謝謝大家。
覺(jué)得不錯(cuò)的話(huà),請(qǐng)Star一下本項(xiàng)目,這是對(duì)作者最大的支持。
所有相關(guān)庫(kù)已準(zhǔn)備好,隨時(shí)等待調(diào)用。
特性react
redux
react-router
react-router-redux
webpack
babel
koa
karma
eslint
需求配置node ^4.5.0
npm ^3.0.0
開(kāi)始確認(rèn)好你的環(huán)境配置,然后就可以開(kāi)始以下步驟。
$ git clone https://github.com/bodyno/react-starter-kit.git $ cd react-starter-kit $ npm install # Install project dependencies $ npm start # Compile and launch
如果一切順利,你會(huì)看到如下:
開(kāi)發(fā)過(guò)程中,你用得最多的會(huì)是npm start,但是這里還有很多其它的處理:
npm run | 解釋 |
---|---|
start | 服務(wù)啟動(dòng)在3000端口,代碼熱替換開(kāi)啟。 |
compile | 編譯程序到dist目錄下(默認(rèn)目錄~/dist)。 |
dev | 與npm start相同, 但是啟動(dòng)nodemon守護(hù)進(jìn)程。 |
dev:no-debug | 與npm run dev 但是禁用devtool(開(kāi)發(fā)工具)。 |
test | 開(kāi)啟Karma測(cè)試并生成覆蓋率報(bào)告。 |
test:dev | 開(kāi)啟Karma測(cè)試并監(jiān)聽(tīng)改變隨時(shí)重新測(cè)試,但是生成覆蓋率報(bào)告。 |
deploy | 啟動(dòng)代碼檢查,測(cè)試,如果成功,編譯到dist目錄下。 |
deploy:dev | 與deploy相同,但是NODE_ENV值為"development"。 |
deploy:prod | 與deploy相同,但是NODE_ENV值為"production"。 |
lint | 檢查所有.js文件是否規(guī)范。 |
lint:fix | 檢查所有.js文件是否規(guī)范并修復(fù)它們。 更多 |
這個(gè)項(xiàng)目的結(jié)構(gòu)使用的是 fractal(不規(guī)則碎片形:適合大型項(xiàng)目)*,方法的分組主要是依照特性而不是文件類(lèi)型。注意,這個(gè)目錄結(jié)構(gòu)只是一個(gè)指引,并不一定要按這個(gè)來(lái)。這種結(jié)構(gòu)諧在讓程序更容易擴(kuò)展,想了解更多請(qǐng)點(diǎn)擊這里。
. ├── bin # 啟動(dòng)腳本 ├── blueprints # redux-cli的藍(lán)圖 ├── build # 所有打包配置項(xiàng) │ └── webpack # webpack的指定環(huán)境配置文件 ├── config # 項(xiàng)目配置文件 ├── server # Koa 程序 (使用 webpack 中間件) │ └── main.js # 服務(wù)端程序入口文件 ├── src # 程序源文件 │ ├── main.js # 程序啟動(dòng)和渲染 │ ├── components # 全局可復(fù)用的表現(xiàn)組件(Presentational Components) │ ├── containers # 全局可復(fù)用的容器組件 │ ├── layouts # 主頁(yè)結(jié)構(gòu) │ ├── static # 靜態(tài)文件(不要到處imported源文件) │ ├── styles # 程序樣式 │ ├── store # Redux指定塊 │ │ ├── createStore.js # 創(chuàng)建和使用redux store │ │ └── reducers.js # Reducer注冊(cè)和注入 │ └── routes # 主路由和異步分割點(diǎn) │ ├── index.js # 用store啟動(dòng)主程序路由 │ ├── Root.js # 為上下文providers包住組件 │ └── Home # 不規(guī)則路由 │ ├── index.js # 路由定義和代碼異步分割 │ ├── assets # 組件引入的靜態(tài)資源 │ ├── components # 直觀(guān)React組件 │ ├── container # 連接actions和store │ ├── modules # reducers/constants/actions的集合 │ └── routes ** # 不規(guī)則子路由(** 可選擇的) └── tests # 單元測(cè)試樣式
所有的css和sass都支持會(huì)被預(yù)處理。只要被引入,都會(huì)經(jīng)過(guò)PostCSS壓縮,加前綴。在生產(chǎn)環(huán)境下會(huì)提取到一個(gè)css文件下。
服務(wù)端這個(gè)項(xiàng)目的服務(wù)端使用Koa。需要注意的是,只有一個(gè)目的那就是提供了webpack-dev-middleware 和 webpack-hot-middleware(代碼熱替換)。使用自定義的Koa程序替換webpack-dev-server,讓它更容易實(shí)現(xiàn)universal 渲染和為了不使這個(gè)包過(guò)于龐大。
打包優(yōu)化Babel被配置babel-plugin-transform-runtime可以讓代碼更優(yōu)化。另外,在生產(chǎn)環(huán)境,我們使用react-optimize來(lái)優(yōu)化React代碼。
在生產(chǎn)環(huán)境下,webpack會(huì)導(dǎo)出一個(gè)css文件并壓縮Javascript,并把js模塊優(yōu)化到最好的性能。
靜態(tài)部署如果你正在使用nginx處理程序,確保所有的路由都直接指向 ~/dist/index.html 文件,然后讓react-router處理剩下的事。如果你不是很確定應(yīng)該怎么做,文檔在這里。Express在腳手架中用于擴(kuò)展服務(wù)和代理API,或者其它你想要做的事,這完全取決于你。
謝謝大家如果沒(méi)有大家的貢獻(xiàn),這個(gè)項(xiàng)目是不可能誕生的, 感謝所有為這個(gè)項(xiàng)目做出貢獻(xiàn)的人。
鏈接在這里
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/50174.html
摘要:服務(wù)端渲染的手腳架這個(gè)啟動(dòng)包的設(shè)計(jì)是為了讓你使用一整套最新最酷的前端技術(shù),所有都是可配置,富特性,基于已經(jīng)提供代碼熱加載,使用預(yù)處理,單元測(cè)試,代碼覆蓋率報(bào)告,代碼分割等等更多。 Universal React Starter Kit 服務(wù)端渲染的React手腳架 這個(gè)啟動(dòng)包的設(shè)計(jì)是為了讓你使用一整套最新最酷的前端技術(shù),所有都是可配置,富特性,基于webpack已經(jīng)提供代碼熱加載,使用...
摘要:服務(wù)端渲染的手腳架這個(gè)啟動(dòng)包的設(shè)計(jì)是為了讓你使用一整套最新最酷的前端技術(shù),所有都是可配置,富特性,基于已經(jīng)提供代碼熱加載,使用預(yù)處理,單元測(cè)試,代碼覆蓋率報(bào)告,代碼分割等等更多。 Universal React Starter Kit 服務(wù)端渲染的React手腳架 這個(gè)啟動(dòng)包的設(shè)計(jì)是為了讓你使用一整套最新最酷的前端技術(shù),所有都是可配置,富特性,基于webpack已經(jīng)提供代碼熱加載,使用...
摘要:通過(guò)聲明式編程模型定義組件,是最強(qiáng)大的核心功能。無(wú)論是的瀏覽器書(shū)簽,還是的導(dǎo)航功能,只要是可以使用的地方,就可以使用。二級(jí)路由使用渲染組件屬性狀態(tài)請(qǐng)選擇一個(gè)主題。也許是最佳小實(shí)踐地址,覺(jué)得有幫助的話(huà),請(qǐng)點(diǎn)擊一下,嘿嘿 小前言 這是一個(gè)小小的有關(guān)react的小例子,希望通過(guò)一個(gè)小例子,可以讓新手更好的了解到react、react-router4.0、redux的集中使用方法。 這是基...
閱讀 1438·2021-09-22 15:52
閱讀 1494·2019-08-30 15:44
閱讀 907·2019-08-30 14:24
閱讀 2719·2019-08-30 13:06
閱讀 2714·2019-08-26 13:45
閱讀 2797·2019-08-26 13:43
閱讀 1033·2019-08-26 12:01
閱讀 1458·2019-08-26 11:56