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