Loading...
如果你恰好看到了这篇文章,你一定是希望对这个项目贡献自己的一份力量。这是一个开源项目,我们也有繁忙的业务要做,是用自己的业余时间在维护,为爱发电,精力有限,所以有时候 issue 响应速度不是那么及时,如果你遇到了问题,或者对 Issues 和 Discussions 列表的问题感兴趣,可以直接认领并尝试修复,帮助 S2 变得更好,而不是一味的埋怨和催促,我们不是甲方乙方的关系。
"我代码水平不行", "会不会受到鄙视?", "会不会不太好?", 放心,不存在的!
我们欢迎任何形式的贡献,不管是一个错别字的修改,还是一次友好的建议,不管是通过提交 Issue, 还是一个帅气 pull request, 亦或是参与 discussions 的讨论。
如果你遇到了问题,或者对 Issues 和 Discussions 列表的问题感兴趣,可以直接认领并尝试修复,帮助 S2 变得更好,期待在 贡献者列表 里看见你的头像。
目前我们主要基于 next
分支开发,有任何修改,请基于 next
拉一个分支,然后通过 PR
的形式提交,我们集成了钉钉机器人,会第一次时间 review
你的 PR
, 给与反馈。
master
: 1.x
版本next
: 2.x
版本很抱歉又写了一些 bug, 但求友好的提交一个有意义的 bug 反馈,谁也不希望反馈的 bug 是这样:
没有版本信息,没有复现步骤,没有问题描述,没有代码片段,开局一句话,内容全靠猜。
首先选择 Bug report
按照 Issue 模板 填写相关信息。 是的,这些步骤稍微有一些繁琐,但的确是有效且必须的,每个用户使用的场景都不同,系统环境,软件版本,又或是需要一些特定的步骤才能复现 bug, 这个时候说清楚,可以节省大家的时间!
示例 PR (pr 描述参考)
pnpm install
或者 pnpm bootstrap
然后本地启动项目。close #issue 号
, 这样可以在 pr 合并后,可以自动关闭对应的 issue, 比如 fix: render bug close #123
.Snapshot
UI 快照 (.snap 文件)更新,可以运行 pnpm core:test -- -u
和 pnpm react:test -- -u
自动更新,并一起提交上来,请勿手动编辑)S2 使用 pnpm 作为包管理器
git clone git@github.com:antvis/S2.gitcd S2# 切换到 2.x 分支git checkout next# 安装依赖pnpm install # 或者 pnpm bootstrap# 打包pnpm build# 调试 s2-corepnpm core:start# 调试 s2-react 和 s2-core(推荐)pnpm core:build-esm # 首次运行需要先执行一次(安装依赖后自动执行)pnpm react:playground# 调试 s2-react-componentspnpm react-components:playground# 调试 s2-vue 和 s2-corepnpm vue:playground# 单元测试pnpm testpnpm core:testpnpm react:test# 更新单元格测试快照pnpm core:test -- -upnpm react:test -- -u# 代码风格和类型检测pnpm lint# 本地启动官网pnpm build # 首次运行官网需要先执行一次pnpm site:start
安装依赖后,会自动构建 @antv/s2
, 如果是首次运行,并且自动构建失败,提示找不到 @antv/s2/esm
之类的报错,手动执行一次 pnpm core:build-esm
即可。
根目录运行 pnpm react:playground
来运行 S2
, 可用于调试 @antv/s2
和 @antv/s2-react
, 提供了一些常用的图表场景和配置。
S2 基于 AntV/G
渲染引擎绘制,如果想像 DOM 一样调试的话,可以安装 G 开发者工具
chrome://extensions/
安装后如果你想查看单测的运行结果,除了常规的 pnpm core:test
和 pnpm react:test
来运行测试之外,还可以 可视化的调试单测(基于 jest-electron)
, 可以更快的发现单测的问题。
命令行运行 pnpm core:start
或者 pnpm react:start
, 可以选择测试来运行
也可以指定具体的测试文件名,跳过选择的步骤直接运行。
pnpm core:start packages/s2-core/__tests__/spreadsheet/scroll-spec.tspnpm react:start packages/s2-react/__tests__/spreadsheet/spread-sheet-spec.tsx
因为本质上就是一个浏览器,如果单测结果不符合预期,可以正常打断点进行调试,快速分析原因。
如果有涉及到官网文档的改动,可以在本地调试运行,便于更直观的看到改动效果。
使用文档
- s2-site/docs/manual
API 文档
- s2-site/docs/api
图表示例
- s2-site/examples
# 开发pnpm site:start# 预览pnpm site:preview
如果是新增图表示例,需要在对应目录下的 meta.json
添加相应的配置信息,其中 "screenshot" 是示例的截图,不需要填写,PR 合并后我们会进行上传。
{"demos": [+ {+ "filename": "filename.ts",+ "title": {+ "zh": "中文描述",+ "en": "English description"+ },+ "screenshot": "",+ "new": true+ }]}
创建 S2
表格有三种方式,基础类版本 @antv/s2
和 基于 @antv/s2
封装的 React
和 Vue3
版本:
@antv/s2
: 基于 Canvas
和 AntV/G 6.0 开发,提供基本的表格展示/交互等能力。版本依赖:无
@antv/s2-react
: 基于 React 18
, 和 @antv/s2
封装,兼容 React 16/17
版本,同时提供配套的 分析组件 (@antv/s2-react-components
).版本依赖:
"peerDependencies": {"@antv/s2": "^2.0.0","react": ">=16.9.0","react-dom": ">=16.9.0"}
@antv/s2-vue
: 基于 Vue3
, @antv/s2
, ant-design-vue@3.x
封装。停止维护版本依赖:
"peerDependencies": {"@antv/s2": "^2.0.0","ant-design-vue": "^3.2.0","vue": ">=3.x"}
也就是说 @antv/s2
和框架无关,无任何额外依赖, 你可以在 Vue
, Angular
等任意框架中使用。
包名 | 稳定版 | 包大小 | 下载量 |
---|---|---|---|
@antv/s2 | |||
@antv/s2-react | |||
@antv/s2-react-components | |||
@antv/s2-vue(停止维护) |
Watch
S2 代码仓库, 选择 Custom - Releases
来获取消息推送。