# Timelime-SDK

## 目录
* **src/engine:** 引擎代码
* **src/logic:** 逻辑层，链接 event & engine
* **src/event:** 事件中心
* **src/state:** 状态中心
* **src/ruler:** 缩放轴
* **example** 测试代码

## 开发
1. sdk 的调试代码在 example 目录中
2. 每次 timeline 修改，需要 `npm run build` 一下，打包产物会自动被 example 中引用

## 在 video-markting 中调试
1. rollup.config.js 中将 `plugin` 中的 `terser` 配置注释掉，取消打包混淆
2. 当前包根目录 `npm link`，调试完成后 `npm unlink`
3. video-markting 根目录 `npm link @xy-fe/timeline-sdk`, 调试好后 `npm unlink @xy-fe/timeline-sdk` 解除本地链接

## 引擎包升级
```shell
npm run upgrade -- -s <sdk-file-path> -v <version>
```

## 发布
`npm run publish:beta`: 测试包, 版本号变化为 x.y.(z+1)-beta.0, 多次运行beta数字递增。调试安装时需要显式指定 beta 标签，例如：`npm install @xy-fe/timeline-sdk@beta`

`npm run publish:patch`: 补丁, 版本号变化为 x.y.(z+1), 用于修复 bug 或进行小的改动，不影响现有功能

`npm run publish:minor`: 次版本, 版本号变化为 x.(y+1).0, 添加新功能，但不破坏现有功能的兼容性

`npm run publish:major`: 主版本, 版本号变化为 (x+1).0.0, 引入破坏性更改，即不向后兼容的改动

发布后版本号会自动变更，并将改动自动 commit 到 git，需要手动 push 一下到远程分支

## 验证发布
可以通过以下命令查看已发布的版本和标签：

```shell
npm view @xy-fe/timeline-sdk versions
npm dist-tag ls @xy-fe/timeline-sdk
```
