npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@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 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
? 待复制的远程仓库 [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)资源