MidwayFull 是一个基于 Midwayjs + Vite + Vike + React + Antd 试验性的全栈项目,主要工作将围绕如何简化开发流程,快速开发一个B端应用而展开。
MidwayFull 项目的灵感来自于 Midway Hooks, 通过 Midway Hooks 可动态生成前端可用的 API 模块, 有效缓解前后端对接中出现的协同问题,但美中不足的是, Midwayjs 没有提供成熟的前后端融合方案,例如在现有框架中引入 react 或 vue 等当下流行的前端架构,包括使用 development 与 production 两种模式。Vite server-middlewaremode 的出现,有效地解决了 node web 容器中(koa)启动前端框架的问题。 除此之外,Vike 提供的基于 Vite SSR 方案能消除 SPA 的一些痛点,例如加载性能与 SEO,甚至是应用的响应速度。此外,得益于前后端融合,应用中可以更好地使用 Midway Security 组件来加固应用的安全性,例如 XSS 与 CSRF 防护。
当然也不能无限制地夸大全栈开发的好处,学习成本与无法分解的工作量,将使开发者感受到很大的工作压力。由于前后端的耦合,也大大降低了后端接口的可复用性,使得应用的横向拆分变得相对复杂。
MidwayFull 在重新编译时会根据后端接口代码自动生成客户端调用代码(需要使用Midwayjs Swagger组件),输出目录默认设置为
web/.api
与web/apis
。生成结果则基于 OpenAPI 3.0,openapi-generator-cli 生成工具。
如需进一步了解,参见以下链接:
npm i -g typeorm-model-generator
# 安装依赖 建议使用 pnpm 安装
$ pnpm install
## 全栈开发模式 (存在缺陷)
# 全栈开发可能存在前后端编译器冲突, 运行一段时间后,编辑代码时 tsc 进程会出现重复多次编译的情况
$ npm run dev
## 前端开发模式
# 后端以生产模式启动,前端则为开发模式,如果仅开发前端,请使用此命令
$ npm run dev:front
# 默认地址
$ open http://localhost:7001/
# 编译前后端代码
$ npm run build
# 生产模式启动
$ npm start
npm run lint
来做代码风格检查。npm test
来执行单元测试。正在更新中... 🎁
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。