react脚手架开发

130 阅读2分钟

简介

对开发react 脚手架做一个简单流程介绍~
详见使用过程请在npm 官网(www.npmjs.com/)搜索 csute,sute
极狐gitlab地址:
sute: jihulab.com/sute/sute
csute:jihulab.com/sute/sute_c…

csute

相关库

详见: juejin.cn/post/717866…

开发流程

创建项目

  • 选择所需依赖

根据inquirer 库选择所需要安装的依赖.

  • 自动拉取项目模板

通过download-git-repo 下载在gitlab,github中写好的代码模板

  • 安装项目依赖

修改项目中package.json 在devDependencies写入所选择的依赖 eg: sass": '^1.56.1',

通过 open 库,启动本地服务

创建组件和store

  • 通过命令行传入组件名或store名,或者传入路径,不传有默认路径
  • 通过EJS模板写入组件名和路径
  • 将写入的模板写入在项目中对应的位置

模板介绍

js模板比较简单,以下只介绍ts模板较难理解的部分
js模板链接:jihulab.com/style1/reac… ts模板链接:jihulab.com/style1/reac…

网络请求

取消请求

  • 在每次请求拦截时添加控制器对象,并存放在Map数据结构中
  • 在请求成功时取消拦截

拦截器 类拦截,实例拦截, 请求拦截.
参考链接:juejin.cn/post/707151…

storage

对localStorage,sessionStorage进行二次封装

  • 添加前缀prefix
  • 添加过期时间expire
  • 添加加密,解密.

参考链接: juejin.cn/post/723744…

sute

获取初始化的配置

dev和build时,先new Config()类获取配置

  • 保存sute.config.js 自定义的配置 在extraOptimizeConfig 属性中
  • 保存webpack 配置在commonConfig 中
  • 保存webpack-dev-serve 服务器配置在serviceConfig 中
  • 端口检测在devCheckPort()和changePort() 方法中

获取dev和build的配置

将new Config() 后的实例配置传递给exeConfig()

exeConfig()

  • process.env.NODE_ENV 确定dev 还是prod 环境
  • 执行webpackConfig类获取common公共配置
  • 合并dev配置
  • 合并prod配置

webpack配置拆分

  • 将webpack配置裁为 common 公共配置 dev 配置 prod配置
  • 再将公共的webpack 配置拆分为plugin 和loaders
  • loader拆分为assets script style babel.

WebpackConfig

合并基础配置

  • cache() 缓存
  • resolve 自动生成别名等

dev

dev配置

prod

  • prod配置
  • deploy 自定义plugin实现.

script

  • [jt]sx 文件采用babel,esbuild 还是swc 处理
  • 是否开启多线程打包.

执行

通过webpack 和webpack-dev-serve 执行webpack配置

prod

将exeConfig 获取到的配置执行给webpack

dev

先将配置执行给webpack 返回compiler
将返回的compiler 和服务器的配置(new Config() 实例绑定的serviceConfig)传递给webpack-dev-serve中.

参考链接: esbuild :esbuild.docschina.org/
swc:www.swc.net.cn/

其他链接:

  1. juejin.cn/post/704914…
  2. juejin.cn/post/723667…