React 脚手架选择

刚进公司时,我们前端组新建,两个人。领导让我们自定框架,同事一直在用 React ,我们就从 github 上选择了 antdpro 作为我们的前端基础脚手架。 选择它的原因一是阿里出品,阿里作为中国前端界的少林泰斗,技术水平顶尖,而且该框架也在其内部使用良久,经得住各种考验;二是中文文档齐全, 对于我这种英文渣渣来说,母语太亲切了。

后来,鉴于其太重,决定选择新脚手架替换之,我又负责提供候选脚手架。选择范围当然是 github 了。其它标准如下:

  • 非服务端渲染
  • 非 GraphQL
  • 非 Umi
  • 各 master 分支最后提交时间不晚于 2018-12-31

基于以上标准,并主要按 Star 降序排列之后,有以下脚手架入选,先一一点评两句。

脚手架create-react-appreact-boilerplatereact-slingshotreact-pxq
网址create-react-appreact-boilerplatereact-slingshotreact-pxq
语言js、tsjsjsjs
路由x
状态管理x
样式csscssscss、cssless、css
国际化xxx
代码检查
测试
Data APIWeb APIWeb APIWeb APIWeb API
工具webpackwebpackwebpackwebpack
热部署
Star77.5k25k9.6k6.7k
Fork18.6k5.2k1.7k2.1k
时间2020-04-072019-04-192020-03-302019-06-26
自由度
脚手架react-adminreactairframe-reactarc
网址react-adminreactairframe-reactarc
语言tsjsjsjs
路由
状态管理xx
样式scss、cssless、cssscss、csscss
国际化xxxx
代码检查
测试x
Data APIWeb APIWeb APIWeb APIWeb API
工具webpackwebpackwebpackwebpack
热部署x
Star4.8k3.5k2.7k2.5k
Fork1.4k1.3k307257
时间2020-04-092020-01-162020-03-302019-08-30
自由度较高
脚手架react-webpack-babeldva-boot-admin
网址react-webpack-babeldva-boot-admin
语言jsjs
路由
状态管理x
样式scss、cssless、css
国际化xx
代码检查
测试
Data APIWeb APIWeb API
工具webpackwebpack
热部署
Star1.2k1.2k
Fork433346
时间2020-01-262020-03-24
自由度较高

create-react-app,facebook 官方出品,极简到极致,啥都没有了。没有路由、没有状态管理,没有配置文件,纯 React ,真是一点不能再干净了。适合学习,如果有很强的webpack配置能力,可在其基础上自定义;

react-boilerplate,集成了路由、状态管理(redux-saga)、国际化等功能,全套服务,可用于生产环境;

react-slingshot,集成了路由、状态管理,但状态管理使用 redux-thunk,据说没有 redux-saga 好用;

react-pxq,基本上就是 create-react-app + 作者的自定义,集成了路由、状态管理(redux-thunk)等常用功能;

react-admin,create-react-app的ts版本 + 作者的自定义,集成了路由、状态管理(redux-thunk)等,自定义页面较多;

react,作者手工打造,集成路由、状态管理(redux-thunk)等;

airframe-react,使用了一套bootstrap的ui,没有状态管理,类似于bootstrap的仪表盘管理演示,不适合我;

arc,感觉就是一个create-react-app的示例加强版本,封装没有create-react-app好,更新也比不了,选它不如直接选择 create-react-app;

react-webpack-babel,这真是一个入门配置,没有状态管理,不如create-react-app;

dva-boot-admin,从名字上可以看出来,状态管理是dva(封装了redux-saga),作者又在上封装了一层(估计类似于umi了),整体给我感觉就是create-react-app + dva(umi),感觉可以快等于antdpro了。

综合来看,大部分脚手架都借鉴 create-react-app ,在其上做了自定义,但状态管理又没有使用redux-saga的强大。如果让我选择,我会直接选择react-boilerplate这款。虽然它更新还停留在去年4月份,但 dev 分支一直在保持更新。

以上为一家之言,欢迎交流。