/klg-nest-starter

nestjs 框架的 kalengo 的定制版

Primary LanguageTypeScript

Description

Nest framework TypeScript starter repository.

Nest 脚手架,在开始使用之前,你需要对 Nest 有个基本的认识,特别是 Module 的概念。

本脚手架是 Kalengo 适配版本,针对 Kalengo 的实际需求对 Nest 做了适配.

详细使用文档: Kalengo Nest Starter

本脚手架包括三大内容:

  • 通用的npm 模块 packages
  • 项目示例 sample
  • klg-init 模板

接下来介绍一下完整的开发流程

通用的 npm 模块

为了方便用户升级,脚手架提供的特性大部分都会通过 @kalengo/xxx 这样的 npm 模块实现,用户只要模块版本就可以享受新功能。

因为是多模块开发,所以使用 lerna 这个库来帮忙管理和发布模块。

模块都存放在 packages 目录中,lerna 可以有效地帮你处理好模块之间的引入关系。

单元测试(TODO)

每个 packages 需要编写单元测试,保证稳定性,执行方法:

npm run test

集成测试

所有示例项目都存放在 sample 目录中,我们的每次修改都要保证示例的测试能够通过。

首先,把修改后的 packages build 到 sample 中

npm run build

然后执行集成测试, 这个命令会进入每一个 sample 并执行 npm run test:e2e

bash run-tests

发布 packages

以上测试都通过后,就可以执行发布

npm run publish

选择本次发布对应的版本,lerna 会帮你搞定发布流程。

验证 packages

为了验证 packages 是否可用,我们可以执行以下命令测试

先执行 bash upgrade-packages.sh 更新 sample 下的 @Kalengo 相关的包

再执行 bash run-tests 进行验证测试

发布脚手架模板

我们使用 klg-init 来生成脚手架,该脚手架需要一个模板。

模板存放位置 template/

默认将 hello-world sample 转为模板,把 hello-world 项目更新到最新,使用最新的 npm 包之后。

gulp move:template

测试模板

cd template
npm run test

该命令做了以下事情:

  • 将模板初始化为项目
  • npm install
  • npm test

注意:测试需要连接 mongodb, 修改 template/config/test.js 里的DB配置即可

测试通过就可以发布模板到 npm, 在 template 目录中执行

npm  publish --registry https://registry.npmjs.org

项目模板将会以 npm 模块的形式发布出去, 模块名是 klg-nest-starter ,klg-init 会自动检测到最新模板。

注意:cnpm 同步 npm 仓库会有时延,你可以选择手动同步, 直接访问 https://npm.taobao.org/sync/klg-nest-starter 触发同步

更新文档

本项目的文档使用 vuepress , Vue 驱动的静态网站生成器。 使用 Markdown 编写,排版也非常简单,一键发布到 Github Pages。

本地编辑文档

执行一下命令,会打开本地文档预览,还会自动刷新。

npm run docs:dev

文档编写完成后,执行项目根目录的发布脚本

bash deploy_doc.sh

文档就更新到 Github Pages 了。