Malagu 框架可以用来开发各种场景的应用,Malagu 框架的设计原则是约定大于配置。绝大部分情况下,我们不需要配置或者少量配置,只需要专注于真正业务代码开发。但是,仍然存在一些问题,比如用户需要自己初始化项目、项目的代码结构随意组织、常用的代码和配置不知道如何写等等。因此,Malagu 框架设计了一套应用模板机制来解决上面的问题。Malagu 框架把一些典型场景应用做成内置应用模板,同时,也支持第三方开发者通过 GitHub 的方式提供应用模板。

使用模板

我们可以通过 malagu init 命令使用模板,malagu init 命令如下:

  1. Usage: malagu init [options] [name] [template]
  2. init a application
  3. Options:
  4. -o, --output-dir [path] output directory (default: ".")
  5. -h, --help output usage information

参数:

  • name 应用名称,可选,如果没有指定应用名称,则使用模板名称作为应用名称
  • tempate 应用模板,可选,支持指定内置模板名称和 GitHub Repository 地址。如果指定 template 参数,则必须指定应用名称;如果没有指定 template 参数,命令行会提示我们从内置模板中选择一个

选项:

  • -o,--output-dir 应用输出的位置,可选,如果不指定该选项,则输出位置为命令行执行时的工作目录

示例:

  1. # 不指定名称,从内置模板列表中选择
  2. $ malagu init
  3. # 指定名称,从内置模板列表中选择
  4. $ malagu init demo
  5. # 指定模板为内置模板名称
  6. $ malagu init demo backend-app
  7. # 指定模板为 GitHub Repository 地址
  8. $ 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

    1. ___

    /‘_/\ /\_ \ /\ \ __ \//\ \ __ __ __ __ \ \ \__\ \ /'__\ \ \ \ /‘\ /'_\/\ \/\ \ \ \ _/\ \/\ \L._ _\ _/\ \L._/\ \L\ \ \ _\ \ \ _\ _\ \/._\/__\ \/._\ _ \ _/ \// \//\//\//\/_/\//\//\/L\ \/_/

    1. /\____/
    2. @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 属性替换成我们指定的应用名称。