写在前面
2024年在恍恍惚惚之间落下了帷幕,永远在感慨时间的稍纵即逝和当下的无可奈何。作者是2017年专科毕业的一名再普通不过的前端开发工程师。坐标无锡,同时也是 Varlet UI 的作者。在文本中,作者会分享 Varlet
的组织成员们这一年都折腾了一些什么事儿。
Varlet 3.0 发布
在2024年2月,我们发布了 Varlet UI 第三个 Major 版本,这个版本我们同时支持了两个版本的设计系统。在保证 Material Design 2
的功能稳定的前提下,也支持了 Material Design 3
。同时支持两个设计系统不是一件容易的事情,开发新特性和维护工作充满了权衡和挑战。
组件能力增强
在社区同学们的帮助下,我们对部分组件的功能进行了一定的增强,同时也新增了一些组件,以下仅列举部分的典型更新。
- 新增 AutoComplete 组件
- 新增 Code 组件
- 新增 Alert 组件
- 新增 CountTo 组件
- 新增 Switch 组件新的变体
- 支持了 options 风格的组件配置 api,简化了组件使用
- 支持了 MenuSelect 的级联模式
- 支持了基于 Zod 的表单验证方式
Nuxt Module
为了拥抱 Nuxt, 我们的组织成员 xiaomo 开发了一个支撑 Varlet UI
的 Nuxt Module,使开发者使用 Nuxt + Varlet UI
时能够得到更好的开发体验。
桌面端体验增强
Varlet UI
是一个移动端优先的组件库,在早期版本对桌面端的交互支持是有欠缺的。在组织成员 chouchouji 的主导下,针对所有的组件进行了桌面端的交互增强。补足了鼠标、键盘、tab 导航等交互,并且优化了许多的无障碍设计,使组件库在移动端、桌面端都有着不错的表现。
Unocss/Tailwind 原子化 CSS 体验增强
在工程中使用了原子化框架的用户总会产生一个问题,就是无法将组件的样式变量平滑的整合到工程变量中。我们为此开发了相关的预设,帮助用户更容易的引用组件库的样式变量。
开源了图标库构建工具
在 24 年中旬,我们对 Varlet UI
的图标库构建功能进行了抽离,并且总结成了一套适用于开源场景/企业内部的图标库构建工具链,更详细的内容可以参考这篇文章:快速构建企业自用/开源图标库。
Rattail: 组件库剥离出的实用工具库
我们将组件库的实用工具函数抽离成了独立的仓库 Rattail,并且提供了更加完善的文档和单元测试。而且吸纳了更多的实用工具 (mitt、hash-sum...),这使我们日常工作的业务开发和其他的开源项目也因此受益良多。虽然它看起来很像 lodash
,但是其定位的不同会使我们会倾向于使用更加实用、更加现代的工具集合,而不是 lodash
这样的函数式编程库。
eslint & prettier 预设开源
eslint v9
开始将扁平化配置(配置都在 eslint.config.js
中而不是 .eslintrc
)作为了默认的配置方式。
受 antfu-eslint-config 的启发,我们开发了自己的 eslint 预设 和 prettier 预设。
不直接使用 antfu
的预设是因为我们更倾向于将代码格式化的工作交给 prettier
,并且预设是有一定的主观性的,自己维护也会有更高的自由度。虽然之前我们也有类似的预设但却只服务于 Varlet UI
,现在我们将它们独立并开源出来,希望可以帮助更多同学平滑的迁移 eslint v9
,并且可以让更多的开源仓库收益。
varlet-release: 版本发布工具
varlet-release 是 Varlet UI
所使用的版本发布工具,。与 eslint & prettier 预设开源的动机类似,我们将其独立开源了出来。它允许用户使用通过命令行交互的方式进行版本发布,并且支持与 githooks
集成检查 commit message
,changelog
生成等功能,开箱即用。
还有一些组织成员维护之余的作品
作者在其中起到了至关重要的打酱油的作用!
VSCode 别名管理插件: github.com/chouchouji/…
Vite 资源预加载插件: github.com/cszhjh/vite…
写在最后
总感觉一年匆匆过去什么都没做到位,一直被社区的同学们鼓励着往前走,再次感谢各位。前端这几年非常的不容易,但也无需过度焦虑。交流技术也好,无聊吹水也好,欢迎各位与我交流。同时也希望各位在 2025 年不费吹灰之力就能取得令人满意的成果。
个人 github: github.com/haoziqaq
varletjs 组织: github.com/varletjs/va…
varlet-ui: github.com/varletjs/va…