更新记录
0.0.7(2024-10-31) 下载此版本
update
0.0.6(2024-10-21) 下载此版本
update
0.0.5(2024-10-21) 下载此版本
update
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
× | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
XKit-FE
该项目是云信应用开发的前端相关的库。
快速启动
项目使用 lerna + yarn workspace 进行多包和依赖管理,因此需要先全局安装 lerna 和 yarn
全局安装 lerna
$ npm i lerna -g
全局安装 yarn
$ npm i yarn -g
安装项目依赖
$ yarn && yarn bootstrap
开发调试
测试环境:
$ yarn start
线上环境:
$ yarn start:prod
项目发布 npm
请先完成上述构建步骤,然后执行:
$ yarn release
包命名规范
- 纯逻辑的包,包名按照 {业务}-kit 来命名
- UI 组件的包,包名按照 {业务}-{平台/框架}-ui 来命名
代码提交
- 通过 git-cz 提交代码,根据选项选择 scope 和影响范围
- 通过 以下命令生成全部项目 changelog(记录 feat 和 fix 的 commit 记录)
$ npm run changelog
- 执行如下命令自动扫描 packages 下面模块的 changelog,去除 issue 连接,并生成原始拷贝
$ npm run noIssue
分支管理
storybook 提测与发布
部署 storybook,用于项目提测相关,也可以作为文档上线输出给开发者参考使用。
- NDP 发布地址:https://ndp.netease.com/index-new#/app/list?productId=507560&appId=1037679
- 测试域名:https://yiyong-qa.netease.im/yiyong-xkit/
- 线上域名:https://yiyong.netease.im/yiyong-xkit/
文档分支规范:线上:release/xxx 提测:test
说明:
- 提交到对应的分支后,会自动触发 Jenkins Job 来部署,一般来说不需要手动 NDP 发布。
- 文档发布分支基于 master,只接受其他分支往文档分支合并,不接受文档分支往其他分支合并。
包介绍
- utils 工具包: log , request , storage , eventTracking etc
- core-kit : 针对 im , rtc 等 sdk 的封装
- call-kit : 呼叫组件
- login-ui-kit: 登录组件
开发指南
开发相关
- 通过使用 storybook 提供 web 环境的开发能力
- wx 模块的可以接入到 wx 环境进行调试
UI-Kit 开发规范介绍 (请参照 login-ui-kit)
- 为配合
babel-plugin-import
使用,建议组件文件夹命名方式为小写+'-'分割。所有通过根目录导出的组件文件结构为:
xxx(组件名称)
├── index.tsx 组件入口
├── style 样式文件夹,不管有没有样式,都要建
│ └── index.ts
│ └── index.less
- 为了开发者使用在不使用
babel-plugin-import
的情况下,方便引入样式,创建 style 文件夹导出所有组件样式。
import { Login } from '@xkit-yx/login-ui-kit'
import '@xkit-yx/login-ui-kit/lib/style'
测试
- 通过使用 jest 提供测试能力,对于 wx 模块的测试,需要接入微信自动化能力
打包相关介绍
包介绍
- kit 相关(参照 call-ki),使用
rollup
打包,输出ems cjs umd
的三种格式。ems cjs
会使用npm
包管理模式组织,external
对应的dependencies peerDependencies
。 - UI 相关(参照 IM UI Kit),使用
gulp
打包,输出ems cjs
的两种格式,因为是react
组件,默认用户项目有webpack
相关工程化能力所以暂时不考虑输出umd
。并对样式文件跟组件进行分离方便用户自定义样式。
core-kit 相关
对 sdk 的封装,上层 kit 不直接使用 sdk,而是使用 core-kit 的接口,这样可以更好的维护 sdk 的结构,同时也方便上层 kit 开发。
对于 sdk 依赖层面的工程化方案
- 用户在使用 kit 或 ui kit 的时候允许保留项目已有的云信相关的 sdk(ps:sdk 版本需要在兼容范围内)
- 针对已经 npm 发包的 sdk ,通过
peerDependencies
管理。 - 针对未发包的 sdk ,需要用户配置工程化能力,如:
webpack resolve alias
把用户的sdk alias
成对应包名称。