贡献指南

命令

环境准备

git clone git@github.com:aliyun/alibabacloud-console-chart.git

cd alibabacloud-console-chart

yarn

项目初始化

在项目根目录下执行命令:

yarn build

因为需要构建每个源码包,所以速度会比较慢,请稍等

demo 预览

在项目根目录执行命令:

yarn dev

可打开: http://localhost:9001 查看demo 情况。每个demo在/packages目录下各自对应目录下的demo目录。

项目开发

建议单个项目开发测试,进入到指定的图表子目录

cd packages/console-***-chart

yarn watch

开启 watch,这时候所有的改动都会被 demo 服务感知,可实时查看更改后的效果。

文档编写

发包

项目根目录执行命令

lerna publish

代码仓库组织结构

本仓库使用 yarn workspace + lerna 进行管理,是 monorepo 的结构。 将本仓库克隆到本地以后,执行yarn build即可完成项目的初始化。

初始化耗时较长,因为需要将所有 package 都构建一遍。

  • 图表组件:在packages/目录下。使用 webpack 来构建开发环境,进入packages/console-xx-chart目录并执行yarn run watch来开启 watch,这时候所有的改动都会被 demo 服务感知,可实时查看更改后的效果。
  • 文档站点:在site目录下。
  • 开发指南:原文放在docs目录下(比如本指南)。开发指南会被site项目打包,在文档站点中展示。

所有开发期所需的依赖都安装在根目录

新增图表组件时注意:所有开发期所需的依赖都安装在根目录中,从而不需要每个子目录都维护一份自己的开发依赖,做到统一管理、升级。

开发工具

所有package.json都已经配置好scripts,新增业务组件时请仿照已有package.json的格式。

  • 图表组件:
    • 使用 typescript 开发
    • 使用 storybook 作为开发环境
    • README 使用mdx来编写,并被文档站打包渲染。在 mdx 中可以引入 storybook 的示例,以及引用源码中的类型、注释信息作为 API 文档
    • yarn run dev启动开发环境
  • 文档站:使用 gatsbyjs 进行开发。从而文档站是完全静态化的,所有数据在构建期间就被收集(从仓库中),在运行期间无需服务端提供数据

PR 贡献者必须签署 CLA 协议

在提交 PR 以后会出现一个 CLA 协议让提交者签署,未签署 CLA 协议的 PR 不会被合并。