@aliretail/epoch-cli
v0.3.3
Published
The Development Environment For Epoch
Downloads
45
Readme
纪元命令行工具
概述
纪元是一套全栈的开发平台,@aliretail/epoch-cli 作为命令行工具提供了完整的前端研发链路,支持了源码页面仓库和低代码搭建仓库的开发、发布
安装
npm install @aliretail/epoch-cli -g
该命令行工具依赖 node v10+
配置
基本配置
使用命令行之前需要配置纪元的域名以及相应开发账号的 Access Key
开发之前需要确认开发租户的域名,比如纪元自身的域名为:citrus.zacz.cn
首先获取租户的登录和开发权限,新建应用之后可以获得 appCode
.
然后在 安全信息管理页(<租户开发域名>/ui/epoch/customer/useraccesskeys) 新建 Access Key ID
和 Access Key Secret
,注意:Access Key Secret将不再显示,请拷贝下来小心保管
接着执行配置命令:
epoch configure
输入域名,获取的 key:
===================================
纪元配置项
===================================
? Domain Name citrus.zacz.cn
? Support HTTPS No
? Access Key Id <your access key id>
? Access Key Secret <your access key secret>
? Sandbox Host
? Maven settings.xml $HOME/.m2/settings.xml
多用户配置
命令行支持多用户配置:
epoch configure -p <profile>
此时会多一个「用户名」的配置:
===================================
纪元配置项
===================================
? 用户名 lattice
? Domain Name citrus.zacz.cn
? Support HTTPS No
? Access Key Id <your access key id>
? Access Key Secret <your access key secret>
配置完用户之后可以切换用户:
epoch configure -u
然后选择需要切换的用户:
===================================
纪元配置项
===================================
? 选择用户: (Use arrow keys)
❯ master-dev
zacz
lattice-pre
lattice
初始化(epoch ui init)
选择干净的工作目录,执行初始化命令:
epoch ui init
项目类型选择
初始化之后会提示选择项目类型:
? 请选择纪元源码仓库开发类型: (Use arrow keys)
❯ 页面
组件库
项目基本信息
然后输入项目唯一编码(页面仓库输入对应纪元应用的appCode、组件库输入唯一编码以及名称):
// 页面仓库
? 输入纪元的 appCode
// 组件库
? 输入组件库的唯一编码
? 输入组件库的名称
构建方式
当纪元开发的环境在云上时会显示构建方式选择(弹内默认走def):
? 检测到纪元的开发环境在阿里云,选择使用本地构建? (Use arrow keys)
def构建
❯ 本地构建
主干分支
如果选择了def构建,还需要设置开发主干:
? 输入当前开发主干名 (master)
主干分支表示在构建完成之后集成到这个分支中,这里会有一些规则:
- 发布分支发布之前需要拉取并主干分支,确保基线分支上的代码全部合并到了主干分支中
- 发布分支发布之后需要合并到主干分支中,确保主干分支中包含了所有已发布的代码
一般这个分支为 master 分支,只有在多主干开发的时候会设置成其他 trunk
远程拉取
在页面仓库设置完成之后会提示是否复制远程仓库:
? 是否从远程仓库复制 Yes
? 待复制的远程仓库 [email protected]:group/project.git
? 待复制的分支 (master)
可以从远程仓库拉取初始化的代码
初始化之后的项目结构为:
- 页面仓库
.
├── README.md
├── abc.json
├── build.json
├── index.json // 提交到纪元的应用数据配置,一般不建议手动修改
├── mock
├── package.json
├── plugins
│ └── custom.js
├── public
│ ├── favicon.png
│ ├── home.html
│ └── index.html
├── src
│ ├── app.ts
│ ├── components // 组件代码
│ ├── interface
│ ├── locales
│ ├── pages // 页面代码
│ └── utils
└── tsconfig.json
- 组件库
.
├── README.md
├── build.json
├── index.json // 提交到纪元的组件库数据配置,一般不建议手动修改
├── package.json
├── src
│ ├── components
│ │ ├── SayHello
│ │ │ ├── README.md // 组件的Readme文档
│ │ │ ├── demo
│ │ │ │ └── usage.md // 组件使用的demo实例
│ │ │ ├── index.scss
│ │ │ ├── index.tsx // 组件代码
│ │ │ ├── lowcode.md // 在设计器中使用文档
│ │ │ └── prototype
│ │ │ ├── icon.svg
│ │ │ └── index.ts // 组件prototype代码
│ │ ├── index.tsx // 自动生成不要修改
│ │ └── view.tsx // 自动生成不要修改
│ └── utils // 一些通用工具
│ ├── api
│ │ └── index.ts
│ ├── index.ts
│ ├── tool
│ │ └── index.ts
│ └── ui
│ ├── loading.ts
│ └── toast.ts
└── tsconfig.json
开发调试(epoch ui dev)
初始化之后即可进行开发调试:
epoch ui dev
- 页面仓库
启动之后访问 http://localhost:4000/ 进行开发调试。
开发构建使用了 build-scripts,可以在 build.json 中自定义配置 当查询参数 epoch_debug=2 时,线上调试会在线上加载本地构建的代码 本地起的服务是 https,需要手动通过浏览器的拦截
- 组件仓库
启动之后访问 http://localhost:3333/ 进行开发调试。
开发构建使用了 build-scripts,可以在 build.json 中自定义配置
添加页面/组件(epoch ui add)
添加新的页面/组件:
epoch ui add
页面/组件基本信息
? 输入 页面(组件) code(大驼峰的形式,比如FormBasic)
? 输入 页面(组件) 名称
生成代码
- 页面仓库
添加之后会在 src/pages 下生成对应的页面代码,同时会在 index.json 中写入元数据:
{
"app": "xuechentest",
"publish": {
"type": "native" // 构建方式
},
"trunk": "master", // 开发主干
"appType": "page",
"pages": {
"TableList": {
"code": "table_list",
"name": "列表",
"js": []
},
"EditForm": {
"code": "edit_form",
"name": "编辑",
"js": []
},
"BasicDetail": {
"code": "basic_detail",
"name": "详情",
"js": []
},
"NewForm": {
"code": "new_form",
"name": "新增",
"js": []
}
}
}
其中 name 和 js 可以修改, js 中可以加入页面依赖的资源。
- 组件仓库
添加之后会在 src/componens 下生成对应的组件代码,同时会在 index.json 中写入元数据:
{
"code": "code",
"appType": "component",
"name": "name",
"publish": {
"type": "native" // 构建方式
},
"trunk": "master", // 开发主干
"js": [],
"css": [],
"componentList": [
{
"componentCode": "SayHello",
"componentName": "say-hello"
},
{
"componentCode": "F111",
"componentName": "f"
}
]
}
发布(epoch ui publish)
epoch ui publish
开发完成之后需要发布,资源发布做日常和正式的隔离。
? 应用appCode即将发布到环境 环境地址 (Y/n)
? 组件库 组件库Code 即将发布到环境 环境地址 (Y/n)
然后选择发布的资源类型:
请选择需要发布前端资源的类型
发布日常(daily)资源
❯发布线上(prod)资源
选择之后会自动进行构建
其中如果是本地构建,会自动重新安装依赖(可以添加参数-s或者--skip-install跳过),等待构建成功上传资源成功,整个流程就结束
部署(epoch ui deploy)
在 def构建 的时候需要额外做资源部署:
epoch ui deploy
然后选择部署的资源类型:
请选择需要部署前端资源的类型
部署日常(daily)资源
❯部署线上(prod)资源