🏆 一个通用的react脚手架
- 鉴于开发环境的打包速度少于10s,没有通过dll把依赖库分离
- 涉及内容不算多,没有独立配置项,目前只有预设
- 可能是因为目前运行项目不大,开启多进行和多核打包(已注释),打包速度反而下降了
- ci环境不建议开启缓存,避免不必要的问题
1. 属于哪个模块,先建立该模块的文件夹,例如是订单order
2. 如果该文件的所属范围是订单首页(首页命名必须是index) 目录结构: order/index.js,导出文件变量:order(api,name等)/Order(页面)
3. 如果是详情页,目录结构:order/detail.js,导出文件变量:orderDetail(api,name等)/OrderDetail(页面)
必填:类型规则和header
feat(影响的范围,可不写): <header>
<body>
<footer>
e.g.
fix: 修复页面不能滚动
build:主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
docs:文档更新
feat:新增功能
merge:分支合并 Merge branch ? of ?
fix:bug 修复
perf:性能, 体验优化
refactor:重构代码(既没有新增功能,也没有修复 bug)
style:不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
test:新增测试用例或是更新现有测试
revert:回滚某个更早之前的提交
chore:不属于以上类型的其他类型
react-cli/
├─.browserslistrc * 目标浏览器配置表
├─.eslintrc.js * eslint配置文件
├─.gitignore * git忽略文件配置
├─.prettierignore * prettier忽略文件配置
├─.prettierrc * prettier配置
├─babel.config.js * babel配置文件,官方推荐方式
├─CHANGELOG.md * 项目变更日志,由git commit间接生成
├─commitlint.config.js * git commit检验规则
├─package.json * 包管理信息
├─postcss.config.js * postcss配置文件
├─README.md
├─src
| ├─App.jsx * 入口组件
| ├─index.js * 入口文件
| ├─index.scss
| ├─containers * 页面容器
| | ├─Frame.jsx * 业务(通用)父组件
| | ├─Login.jsx * 登录
| | ├─home * 主页
| | | ├─index.jsx
| | | └index.scss
| ├─const * 存放常量
| ├─components * 公共组件
| | ├─test
| | | └index.jsx
| ├─assets * 存放资源
| | ├─scss * 存放scss等预处理器
| | ├─img * 图片等多媒体
| ├─api * api
├─scripts * 存放项目需要运行的脚本文件
| └verifyCommit.js
├─public * index模板
| └index.html
├─dist * 打包后的目录
├─config * 项目配置
├─build * webpack配置
| ├─utils.js * webpack配置工具类
| ├─webpack.config.js * 公用配置
| ├─webpack.dev.js * 开发环境配置
| ├─webpack.dll.js * dll打包配置
| ├─webpack.mpa.js * 多页应用打包配置
| ├─webpack.prod.js * 生产环境配置
| └─webpack.ssr.js * ssr打包配置
功能注释区分环境配置eslint 代码规范prettier 代码统一格式化css loadercss预处理 兼容性问题开发环境样式内联到head生产环境压缩整合sass采用dart-sass
picture loader开发环境原图,保证开发打包速率生产环境自动压缩
babel-loader把高阶语句转换成es5处理字体 内联打包自动生成html内容 压缩打包显示进度条显示良好的webpack提示错误开发环境热加载 局部加载移除多余的moment依赖移除wepback运行日志打包前清空dist预设包分析工具开启打包速度日志提取公共库规范git commit格式检验git commit格式根据commit生成CHANGELOG.md生产环境引入依赖cdn及es5依赖代码分割代码缓存移除没用到的css 类似tree-shaking- 支持ts
- 配置环境用到的script命令
- 自动修改已占用的端口
- 加入jest
- 加入ci
- 多页应用打包
- ssr打包
- 记录每次打包的时间