[关闭]
@jikeytang 2022-02-20T08:43:31.000000Z 字数 4286 阅读 924

react-tiger-admin

2022-blog


1. 背景

由于 react-app-rewired 当时有段时间不更新了,所以更换了 ant design 推荐的 craco。但前两者一致的的问题是热更新、编译打包速度过慢。而 umijs 速度可以,但又引入新的技术栈。那有没有即是熟悉的、速度又是可观的工具呢,这时候 vite 逐渐进入我的视野。
此项目就是为了让 vite 能够无缝支持 react 的日常开发做的一次尝试和探索。

vite有这么几个特点:

2. 相关介绍

2.1 基本介绍

2.2 技术栈

技术 说明 官网
Vite 下一代前端开发与构建工具 https://cn.vitejs.dev/
React 用于构建用户界面的 JavaScript 库 https://reactjs.org/
React-router 官方的路由管理器 https://github.com/remix-run/react-router
Typescript 类型约束 https://www.typescriptlang.org/
Mobx 全局状态管理模式 https://mobx.js.org/
Axios 基于promise 的HTTP 库 https://github.com/axios/axios
Ant-design UI组件库 https://ant-design.gitee.io/
Ahooks 一套高质量可靠的 React Hooks 库 https://ahooks.js.org/
Fastmock 简单好用的在线接口 MOCK 平台 https://fastmock.site/
Momentjs JavaScript 日期处理类库 http://momentjs.cn/
LESS CSS预处理器 https://lesscss.org/
Tinymce 可视化HTML编辑器 https://www.tiny.cloud/
React-icons 图标字体库 https://react-icons.github.io/react-icons/icons

2.3 开发工具

系统 工具 官网
VScode 主开发工具 https://code.visualstudio.com/
Webstorm 辅开发工具 https://www.jetbrains.com/webstorm/
Atom 源码阅读 https://atom.io/
Cmder Cmd替代工具[windows] https://cmder.net/
Notepad2 单文件编辑[windows] http://www.flos-freeware.ch/notepad2.html
Coteditor 单文件编辑[mac] https://coteditor.com/
Chrome 调试工具 https://www.google.com/intl/zh-CN/chrome/

2.4 文件结构

  1. .
  2. ├── LICENSE // MIT 开源协议
  3. ├── dist // Gitee 发布依赖目录
  4. ├── index.html // vite 入口目录
  5. ├── public // 公共资源
  6. ├── src
  7.    ├── App.test.tsx
  8.    ├── App.tsx
  9.    ├── api // 请求文件
  10.    ├── assets // 静态资源
  11.    ├── common // 公共资源
  12.    ├── components // 公共组件
  13.    ├── hooks // 公共 hooks
  14.    ├── index.tsx
  15.    ├── typings // 公共 interface, type
  16.    ├── layouts // 布局
  17.    ├── pages // 所有页面
  18.    ├── react-app-env.d.ts
  19.    ├── reportWebVitals.ts
  20.    ├── router // 路由文件
  21.    ├── setupTests.ts
  22.    ├── store // mobx 文件
  23.    ├── styles // 所有 less 文件
  24.    └── utils // 工具文件
  25. ├── tsconfig.json
  26. └── vite.config.js

3. 开发步骤

3.1 创建项目

根据 npx create-react-app my-app --template typescript 命令创建支持 typescript 的项目,并安装依赖,如果是 yarn 工具同理。

3.2 创建配置文件

  1. alias: [
  2. { find: '@', replacement: path.resolve(__dirname, 'src') },
  3. ],
  1. css: {
  2. preprocessorOptions: {
  3. less: {
  4. additionalData: '@import "src/styles/_variables.less";',
  5. javascriptEnabled: true,
  6. },
  7. },
  8. },

3.3 拷贝 publicindex.html到根目录

由于 vite的特殊约定,所以不得不手动拷贝此文件,扩展阅读 index.html 与项目根目录,如果不执行此操作,则项目页空白,虽然 vite 能够启动成功,但页面为空白。

3.4 为 index.html 文件增加访问路径

增加可访问的路径入口,比如:

  1. <script type="module" src="/src/index.tsx"></script>

3.5. 修改 package.json script

如下所示

  1. "scripts": {
  2. "start": "vite",
  3. "build": "vite build",
  4. },

到此时,然后增加相关的 eslintprettierrc 等等的配置之后,项目就可以完整的运行起来了,看见了熟悉的 react logo 心中难免一阵激动,然后随便修改个文件,hmr 秒更新,一句窝草脱口而出。

3.6. 快速启动

  1. // 切换环境
  2. nvm install 16.0.0
  3. nvm use 16.0.0
  4. // 安装依赖
  5. npm install
  6. // 启动项目
  7. npm start

4. 旧项目改造

无论之前项目是 react-scripts,还是 react-app-rewiredcraco 都可以用 vite 来进行开发,具体的步骤如上 #3.2 - #3.5 所示,带来的不便,所有的错误信息不像以前直接打印在页面上,而是打印在 Dev Tool 的控制台中。

5. FAQ

如果还想找回此文,您可以点右上角 💖Star 💖 收藏 + 支持

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注