UNPKG

zp-bee

Version:

zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。

109 lines (72 loc) 3.43 kB
# zp-bee `zp-bee`,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。如果你也想学习组件开发,欢迎加入或提供意见,该项目会长期更新,欢迎你的 start⭐ ## ✨ 特性 - 🌈 提炼组件库设计良好的视觉风格 - 📦 渐进式探索高质量的前端代码的实现 - 🛡 使用 TypeScript 开发,提升开发体验 - ✅ 组件内部使用 antd 风格,以及 antd 内部颜色 - 📖 提供开发过程的文档思路,助力你学习组件开发 - 🔖 该项目会长期维护,并不断探索最佳实践 ## 安装 ### 使用 npm 或 yarn 安装 **我们推荐使用 npm 或 yarn 的方式进行开发**,不仅可在开发环境轻松调试,也可放心地在生产环境打包部署使用,享受整个生态圈和工具链带来的诸多好处。 ```js npm install zp-bee --save ``` ```js yarn add zp-bee ``` ### 按需加载 `zp-bee`默认支持基于 ES modules 的 tree shaking,对于 js 部分,直接引入 `import { BeeInput } from 'zp-bee'` 就会有按需加载的效果。 使用[babel-plugin-import](https://github.com/ant-design/babel-plugin-import)帮助我们引入样式 ```js [ 'import', { libraryName: 'zp-bee', libraryDirectory: 'lib', style: true }, 'zp-bee', ]; ``` ### TypeScript[#](https://ant.design/docs/react/introduce-cn#TypeScript) `zp-bee`使用 TypeScript 进行书写并提供了完整的定义文件。 ## 本地联调(宿主工程更方便快捷) 强烈建议优先用 **`yalc`** 来联调组件库(比 `yarn link` 更稳定,基本不会踩到“双 React / 双 antd / 双 rc-table 导致 Context 为 null”的坑)。 ### 方案 A:yalc(推荐) 1. 全局安装 yalc(一次即可): ```bash npm i -g yalc ``` 2. 在组件库工程(本仓库)开两个终端: ```bash # 终端 1:TS/JS 构建 watch(输出到 lib/es) yarn build:js:watch ``` ```bash # 终端 2:样式构建 watch(输出 index.css 到 lib/es) yarn build:css:watch ``` 3. 在组件库工程执行一次发布到本地 yalc 仓库: ```bash yalc publish --push ``` 4. 在宿主工程安装并使用本地包: ```bash yalc add zp-bee yarn ``` 5. 后续开发时,每次改动你可以在组件库工程执行: ```bash yalc publish --push ``` 宿主工程会自动更新到最新的本地包内容(通常配合宿主 dev server 即可热更新/刷新)。 ### 方案 B:继续 yarn link(不推荐,但可用) 如果你必须用 `yarn link`,请确保宿主工程和组件库工程 **只使用同一份 react/react-dom(必要时 antd/rc-table)**- 宿主工程执行:`yarn link react && yarn link react-dom` - 组件库工程执行:`yarn link react && yarn link react-dom` 并在宿主工程配置打包器做 dedupe/alias(按你的宿主工程技术栈配置:Vite/Next/CRA/Webpack)。 ### 流程步骤建议 - 在 master 分支下切出新分支,分支命名为即将发布的版本号,例: `v0.1.80` - 修改代码内容 - 运行`yarn v-release`更新 package.json 中的`version`字段 - 运行`yarn release`把包发布到 npm 上,也可自己手动 build 后 publish - 代码推至远程之后,发起 mr 到 master 分支上,指派给代码库管理员 review **_发包之前要慎重,最好的方式还是代码合并到 master 之后由管理员进行发包,目前管理员可能并无过多精力做此内容,遂适当赋能 developer_**