0.3.3 • Published 2 years ago

@aliretail/epoch-cli v0.3.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

纪元命令行工具

概述

纪元是一套全栈的开发平台,@aliretail/epoch-cli 作为命令行工具提供了完整的前端研发链路,支持了源码页面仓库和低代码搭建仓库的开发、发布

安装

npm install @aliretail/epoch-cli -g

该命令行工具依赖 node v10+

配置

基本配置

使用命令行之前需要配置纪元的域名以及相应开发账号的 Access Key

开发之前需要确认开发租户的域名,比如纪元自身的域名为:citrus.zacz.cn

首先获取租户的登录和开发权限,新建应用之后可以获得 appCode.

然后在 安全信息管理页(<租户开发域名>/ui/epoch/customer/useraccesskeys) 新建 Access Key IDAccess 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
? 待复制的远程仓库 git@github.com: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)资源
0.3.2-alpha.2

2 years ago

0.3.2-alpha.5

2 years ago

0.3.2

2 years ago

0.3.3

2 years ago

0.2.21-alpha.3

2 years ago

0.3.2-alpha.1

2 years ago

0.3.0

2 years ago

0.3.0-alpha.1

2 years ago

0.3.1-alpha.1

2 years ago

0.3.1-alpha.2

2 years ago

0.2.21

2 years ago

0.2.22-alpha.2

2 years ago

0.2.22-alpha.3

2 years ago

0.2.21-alpha.2

2 years ago

0.2.21-alpha.1

2 years ago

0.2.20

3 years ago

0.2.20-alpha.4

3 years ago

0.2.20-alpha.5

3 years ago

0.2.20-alpha.3

3 years ago

0.2.20-alpha.2

3 years ago

0.2.20-alpha.1

3 years ago

0.2.19

3 years ago

0.2.19-alpha.1

3 years ago

0.2.18

3 years ago

0.2.18-alpha.7

3 years ago

0.2.18-alpha.3

3 years ago

0.2.18-alpha.5

3 years ago

0.2.18-alpha.4

3 years ago

0.2.18-alpha.6

3 years ago

0.2.18-alpha.2

3 years ago

0.2.17

3 years ago

0.2.17-alpha.1

3 years ago

0.2.16

3 years ago

0.2.15

3 years ago

0.2.16-alpha.2

3 years ago

0.2.16-alpha.3

3 years ago

0.2.16-alpha.1

3 years ago

0.2.14

3 years ago

0.2.13

3 years ago

0.2.13-alpha.1

3 years ago

0.2.12-alpha.1

3 years ago

0.2.12

3 years ago

0.2.11-alpha.3

3 years ago

0.2.11-alpha.4

3 years ago

0.2.10-alpha.4

3 years ago

0.2.11-alpha.1

3 years ago

0.2.11-alpha.2

3 years ago

0.2.11

3 years ago

0.2.10-alpha.2

3 years ago

0.2.10

3 years ago

0.2.10-alpha.1

3 years ago

0.2.9-alpha.1

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.8-alpha.2

3 years ago

0.2.8-alpha.1

3 years ago

0.2.7-alpha.2

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.7-alpha.1

3 years ago

0.2.6-alpha.9

3 years ago

0.2.6-alpha.8

3 years ago

0.2.6-alpha.7

3 years ago

0.2.6-alpha.5

3 years ago

0.2.6-alpha.3

3 years ago

0.2.6-alpha.4

3 years ago

0.2.6-alpha.2

3 years ago

0.2.5-alpha.11

3 years ago

0.2.6-alpha.1

3 years ago

0.2.5

3 years ago

0.2.5-alpha.10

3 years ago

0.2.5-alpha.9

3 years ago

0.2.5-alpha.8

3 years ago

0.2.5-alpha.7

3 years ago

0.2.5-alpha.5

3 years ago

0.2.5-alpha.6

3 years ago

0.2.5-alpha.4

3 years ago

0.2.5-alpha.3

3 years ago

0.2.1

3 years ago

0.2.0-alpha.6

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.4

3 years ago

0.2.2-alpha.4

3 years ago

0.1.0

3 years ago