字数:1.1k 字
预计:3 分钟
阅读量:17
2024 年度总结
作者:winches
更新于:2 个月前
MoeGo 工作成果
1. 富文本 Tinymce 迁移至 Lexical
服务对象:用到关于 MoeGo Agreement 模板内容的用户(Web+Mobile)
输出:自调研并实现将旧 Tinymce 编辑器迁移至 Lexical
背景:
- 旧的 Tinymce 编辑器超过了免费额度 1000 loads,导致不可用,用户上报后发现是需要充钱了
- 由于其离谱的收费制度,定价是 plan $80 (include 5000 loads), 超量的话 $40/1000 loads
- 最终决定改市面上开源免费的富文本,且需要保留旧富文本的全部主要功能,避免影响到用户使用
价值:
- 迁移完成后每月节省 $80 + $40 * x (x >= 0)
- 保留旧功能的同时,用 MoeGo UI 重构了 Toolbar/Overlay 给用户更友好且统一的 UI 体验,且针对 Mobile 做了手机端的展示优化(Driving + Customers)
- OBC 客户端对于 Agreement 内容的样式展示是没有的,切换编辑器后自定义插件实现了对于样式的展示,为了客户有更好的体验(Customer)
复杂性:
- 无产品,无设计,无参考,只有前组员留下来的一个draft pr(将官网的 dmeo copy 过来的 pr)和组长与我对齐的目标
- 旧编辑器是闭源高集成,许多功能开箱即用未进行过二次开发,没有可以复用的代码和样式,因此全部功能和样式都需要自研究如何通过新编辑器实现
- 大量自动操作需要考虑如:复制 docs 文案自动更新对应样式适配编辑器样式、复制 Link 链接自动转换为 Link 节点、复制图片自动添加为图片节点并上传到 MoeGo 服务器,自动导入/导出节点为可直接展示 HTML,为此做了大量的自定义节点/插件为功能的实现
2.DatePicker RangePicker 组件实现
组件被广泛用于 BD 预约的多个场景,因此需要支持,单选、多选、反选、范围选择多个场景,且不同场景下返回的组件提示类型也需要做调整;作为公共组件需要暴露并实现多个钩子函数、受控模式、异步加载并刷新等多个复杂场景的考虑
3. Rsbuild Http2 和 Proxy 支持
提升了 2 倍开发人员网络请求速度, e.g. 20s --> 10s
4. Vscode 插件,终端自动填写 commit,css style 自动转 tailwindcss 并支持自定义 prefix
开源项目
frontio
Website: https://frontio.ai
frontio 插件: https://www.figma.com/community/plugin/1399842477111428412/frontio-by-nextui
- frontio 插件负责人
- web、figma 本地 variables、figma 插件,三端同步支持
- 支持从 figma 本地导入 variables 解析为 frontio 变量
- 支持 frontio 变量应用到 figma 的组件
- frontio-cli 负责人
- 支持一键拉取/自动拉取 frontio 变量,并生成到本地支持 css/sass/less
- frontio 官网
- dashboard tokens 组件封装,支持嵌套展示各 token 值展示
- nextjs 15 迁移,提升构建/运行速度,引入 ssr 预渲染,提升 SEO 和速度
nextui
Website: https://www.heroui.com
- tailwindcss v4 support
- 修复 inert 在 nextjs 15 和 react 18 的表现差异问题
- preview code 支持折叠功能
- storybook 8 升级
- 日常 issues/feature 维护
nextui-pro
Website: https://www.heroui.pro/
- 新增组件 Table With Filters
- docs 新增 codeblock folder 功能,支持代码折叠
- nextjs 15 迁移
nextui-cli owner
- 完成
init,add,upgrade,remove,list,env,doctor
命令 - 支持运行时缓存
- 自定义命令行动态输出、box 输出
- 支持与 nextui 文档的自动同步,减少维护成本
- 支持自动发布流程
@nextui/codemod owner
- 支持从
nextui
到heroui
的一键丝滑迁移,获得用户广泛好评,只需运行一个命令用户就可以完成迁移
个人项目
dynamic-log
🌈 Dynamic log for your nodejs project enhance your log with color and emoji/ascii art
https://github.com/winchesHe/dynamic-log
react-components-library
Website: src/components/Calendar/Calendar.tsx
更现代化的组件库模板