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 属性替换成我们指定的应用名称。


Copyright © 2024 Zero (github@groupguanfang) 粤ICP备2023102563号