Malagu 框架可以用来开发各种场景的应用,Malagu 框架的设计原则是约定大于配置。绝大部分情况下,我们不需要配置或者少量配置,只需要专注于真正业务代码开发。但是,仍然存在一些问题,比如用户需要自己初始化项目、项目的代码结构随意组织、常用的代码和配置不知道如何写等等。因此,Malagu 框架设计了一套应用模板机制来解决上面的问题。Malagu 框架把一些典型场景应用做成内置应用模板,同时,也支持第三方开发者通过 GitHub 的方式提供应用模板。
使用模板
我们可以通过 malagu init
命令使用模板,malagu init
命令如下:
Usage: malagu init [options] [name] [template]
init a application
Options:
-o, --output-dir [path] output directory (default: ".")
-h, --help output usage information
参数:
name
应用名称,可选,如果没有指定应用名称,则使用模板名称作为应用名称tempate
应用模板,可选,支持指定内置模板名称和 GitHub Repository 地址。如果指定template
参数,则必须指定应用名称;如果没有指定template
参数,命令行会提示我们从内置模板中选择一个
选项:
-o,--output-dir
应用输出的位置,可选,如果不指定该选项,则输出位置为命令行执行时的工作目录
示例:
# 不指定名称,从内置模板列表中选择
$ malagu init
# 指定名称,从内置模板列表中选择
$ malagu init demo
# 指定模板为内置模板名称
$ malagu init demo backend-app
# 指定模板为 GitHub Repository 地址
$ malagu init demo git@github.com:cellbang/cellbang-site.git # 或者 malagu init demo https://github.com/cellbang/cellbang-site.git
内置模板
- sample-app:前后端一体化应用,前后端通信使用 RPC 风格
- backend-app:后端应用,使用 REST 风格暴露 API 接口
- scf-app:后端应用,使用 REST 风格暴露 API 接口,默认部署到腾讯云云函数
- vue-app:使用 vue 作为前端的前后端一体化应用
- database-app:访问数据库应用,配置好数据库链接,使用 typeorm 操作数据库
- accounts:账号中心,配置好数据库和 github 等第三方 oauth 凭证即可完成一个真实场景的第三方认证与授权
- schedule:定时任务调度应用,支持 Serverless 场景,屏蔽不同 Serverless 平台之间的差异,一键部署
- admin-app:前后端一体化应用,前后端通信使用 RPC 风格,后端管理系统模板
- microservice:微服务应用
- file-service:基于对象存储服务的文件服务应用
- puppeteer:无头浏览器应用
- monorepo:monorepo 项目风格应用,将一个大项目拆分成多个 Malagu 组件
mycli:命令行应用,快速开发命令行工具 ```bash ➜ test malagu init
___
/‘_/
\ /\_ \ /\ \ __ \//\ \ __ __ __ __ \ \ \__\ \ /'__
\ \ \ \ /‘\ /'_
\/\ \/\ \ \ \ _/\ \/\ \L._ _\ _/\ \L._/\ \L\ \ \ _\ \ \ _\ _\ \/._\/__\ \/._\ _ \ _/ \// \//\//\//\/_/\//\//\/L\ \/_//\____/
@malagu/cli@1.20.5 \_/__/
? Select a template to init (Use arrow keys or type to search) ❯ backend-app Official sample-app Official scf-app Official vue-app Official database-app Official admin-app Official microservice Official file-service Official puppeteer Official monorepo Official mycli Official ```
开发模板
在真实业务场景中,我们往往需要根据业务场景提供一些业务模板,下次我们就可以基于业务模板快速开始新的业务应用了。需要提醒的是如果业务场景适合提炼为组件,请优先选择封装为业务组件。Malagu 框架的应用模板开发十分简单,几乎没有任何学习成本。
Malagu 框架的应用模板与真实的业务应用没有任何区别,只需要确保应用根下面存在 package.json 文件。Malagu 框架在渲染模板的时候只是简单的将模板拷贝或者 Clone 下来输出到目标目录,并将模板项目根下面的 package.json 文件里面的 name
属性替换成我们指定的应用名称。