0. 先决条件

名称 版本 链接
NodeJS >=10 https://nodejs.org
MySQL >=5.7.27 https://dev.mysql.com/downloads/mysql/
Redis >=5.0 mac/linux: https://redis.io
windows: tporadowski/redis

为何使用Redis

  • CabloyJS通过Redis从框架底层就开始原生支持分布式开发,因此当系统起量后,可以轻松做集群扩展

0. 安装Lerna

Lerna是一个大型项目的源码管理工具,可以同时管理多个业务模块包。通过Lerna可以集中管理自行开发的业务模块,和从模块商店下载的业务模块

Lerna提供了许多脚本命令,但对于常规使用而言,我们只需要记住一个:lerna bootstrap(后面会用到)。该命令会自动安装项目中所有业务模块包的依赖项

  1. 1# 全局安装Lerna
  2. 2$ npm i -g lerna

1. 新建项目

创建一个项目cabloy-demo,然后安装所有依赖项

  1. 1# 创建项目
  2. 2$ npm init cabloy cabloy-demo
  3. 3# 进入项目所在目录
  4. 4$ cd cabloy-demo
  5. 5# 安装项目依赖
  6. 6$ lerna bootstrap
  • 注意:使用lerna bootstrap安装项目依赖,而不是npm install

如果网速慢,可以使用淘宝镜像:

  1. 1# 创建项目
  2. 2$ npm init cabloy cabloy-demo -- --registry=https://registry.npmmirror.com
  3. 3# 进入项目所在目录
  4. 4$ cd cabloy-demo
  5. 5# 安装项目依赖
  6. 6$ lerna bootstrap --registry=https://registry.npmmirror.com

2. 配置Redis

集群现在已经成为CabloyJS的一等公民。也就是说,CabloyJS项目随时做好准备,以便部署到集群环境中

CabloyJS的集群特性是基于Redis设计的,因此,需要设置Redis的连接参数,请参见:Redis配置与原生分布式架构

3. 配置MySQL

CabloyJS提供了三个运行环境,需要针对每个运行环境设置MySQL连接参数,请参见:MySQL配置与数据库规划

4. 单元测试

  1. 1$ npm run test:backend

CabloyJS推荐测试驱动的开发模式。通过测试驱动可以锁定开发的成果,当有代码变更时,可以尽早的发现问题,从而解决问题

此外,开发阶段会经常的变更数据库设计,这时,只需要运行一遍单元测试就可以生效了(自动删除旧的测试数据库,然后自动创建一个新的测试数据库),参见:MySQL配置与数据库规划

5. 运行

启动后端开发服务

  1. 1$ npm run dev:backend

启动前端开发服务

  1. 1$ npm run dev:front

6. 进入系统

附录1. Docker Compose

在项目根目录有一个docker-compose.yml配置文件。如果您已经安装好了docker compose环境,那么可以一键启动CabloyJS所有的服务,包括Redis、MySQL、Nginx、以及CabloyJS后端服务

  1. 1$ sudo docker-compose build
  2. 2$ sudo docker-compose up

附录2. 免费安装核心模块的源码

由于CabloyJS内置的核心模块均位于目录node_modules中,如果想查看某个核心模块的源码,可以通过以下指令安装至项目目录:{project}/src/suite-vendor{project}/src/module-vendor

  1. 1# 安装基础模块:a-base-sync
  2. 2$ npm run cli :store:sync a-base-sync
  3. 3# 安装CMS模块:a-cms
  4. 4$ npm run cli :store:sync a-cms
  5. 5# 安装NodeJS工作流引擎模块:a-flow
  6. 6$ npm run cli :store:sync a-flow
  • 若要查看更多核心模块,请转至:Cabloy商店

    • 核心模块是免费的,但仍需要到Cabloy商店生成免费购买记录,从而可以在命令行进行下载和安装
  • 若要了解cli命令的有关信息,请转至:Cli终端

附录3. 测试套件/测试模块

测试套件/测试模块包含大量测试用例代码范例,既便于快速学习CabloyJS方方面面的知识点,又便于快速启动实际的业务开发

  1. 1# 安装套件:test-party
  2. 2$ npm run cli :store:sync test-party
  3. 3# 安装模块:test-flow
  4. 4$ npm run cli :store:sync test-flow
  5. 5# 安装模块:test-note
  6. 6$ npm run cli :store:sync test-note
  • 说明:在旧项目中,可能会提示没有cli指令,需要在项目的package.json中添加

{project}/package.json

  1. 1{
  2. 2 "scripts": {
  3. 3 "cli": "egg-born-bin cli",
  4. 4 ...
  5. 5 }
  6. 6}
  • 说明:在默认情况下,这些测试套件/测试模块在测试环境开发环境中处于启用状态,在生产环境处于禁用状态。因此,一般而言不需要做特殊处理

附录4. 升级系统

  • 升级Cabloy

将项目文件package.jsoncabloy的版本号改为最新版,然后执行以下命令重新安装依赖:

  1. 1# 重新安装依赖项
  2. 2$ lerna bootstrap
  • 升级第三方套件/模块

由于第三方套件/模块位于源码目录{project}/src/suite-vendor{project}/src/module-vendor中,需要单独的指令进行升级

  1. 1$ npm run cli :store:sync

附录5. 开发阶段禁用登录验证码

延伸阅读