「我的2023年开源总结」

·

GitHub 2023

今年是在GitHub上贡献最多的一年了,超过了1000.其中有一些是个人项目,也有一些给开源项目的PR,下面来回顾和总结一下:

Steam Card

steam-card

启动于去年的一个项目,也是我第一个比较正式的项目,在今年用Nuxt UI对其进行了重构,并且加上了多账户登录的一些功能。Nuxt UI的使用体验还是相当不错的,设计也很精美,比较遗憾的是只能用于Nuxt,而无法用在普通的Vue项目中。官方的解释是与Nuxt耦合的太深了,兼容Vue需要耗费大量的精力。不过这可能也是Nuxt团队的一个商业策略吧,吸引更多用户去使用Nuxt,从他们近期推出的Nuxt UI Pro也能看出这一点。

这个项目的用户量还是挺大的,在Vercel上经常会跑满流量,不得以在Vercel和Netlify之间来回切换部署。后续可能也不会有大的更新了,因为自我感觉能加的功能都做上了,可能后续会把项目中获取Steam个人信息的那部分逻辑抽离出来封装成一个npm包吧。

Switch Card

switch-card

从名字就可以看出,是与steam-card类似的项目,用于查询Nineten Switch平台的个人信息。任天堂对第三方开发者实在太不友好了,没有官方的对外接口,现在用的是其他人逆向解析出来的接口,导致有很多的限制,比如港服的账号就查询不出信息。

这个项目还用上了Vercel平台推出的Serverless数据库。体验了一把全栈开发的流程。

比较惊喜的这个项目被DIYgod大佬Star了,也和他在GitHub上互相follow了一波。

Stargazers

stargazers

这是一个用于查看GitHub用户Star列表的项目,为此还专门注册了一个域名stargazers.dev。但最终还是没有获取太好的社区反馈,可能这个需求一开始就是个伪需求,毕竟我自己也没有怎么使用这个项目。

值得一提的是,这是我第一个使用和体验Next.JS以及React生态的项目,不得不说React的生态真的比Vue丰富不少,选择NextJS开发的原因就是因为眼馋shadcn好久了。但是从DX这一方面来说个人更倾向于Vue。最近Vue生态也出现了radix-vue以及shadcn-vue,相信Vue的生态也会越来越丰富。

一些工具

vscode-array-index

vscode-array-index

一个vscode插件,用于在编辑器中标注出数组每个元素的下标。开发这个插件是因为当时的工作中遇到一个业务场景,需要对许多个长度达到几十的数组进行操作,需要知道某个元素在数组中的位置。

目前实现了对.vue,.svelte,.js,.ts,.json这些文件的支持.

使用了antfu的vscode插件开发模版,开发体验非常不错。

nrun

nrun

一个对npm脚本命令提供交互式选择的小工具,可以通过插件的形式集成到zsh中,自己用起来感觉还不错.

推荐一下clack这个库,用来构建命令行工具非常好用。

unplugin

unplugin-turbo-console

今年投入最多的一个项目,也是收获最多的一个项目。第一版是使用正则表达式来匹配所有的console.log表达式,但是这种匹配方法问题太多了,后来改成了基于AST的方法,用vite插件内置的this.parse来进行解析,初版算是完成了。

后来Vite5发布后,内置的this.parse改成了swc,导致出现了问题,为了同时兼容vite4和vite5,用babel/parser重写了AST解析逻辑。后续又加入了编辑器跳转到源码的功能。

之后使用unplugin进行了重构,兼容了webpack及更多的meta-framework。并且凭借这个项目成功加入了unplugin,也是蛮开心的,算是开源之路上一个小里程碑。

unplugin-docs

基于vitepress,为unplugin搭建的官方文档,还没有正式完成。其中遇到的主要问题是Vitepress在解析GitHub README文件内容时,偶尔会出现一些语法错误,导致整个项目无法构建。社区里提供了一种解决方法,但是使用的是Nuxt Content而不是Vitepress。还得再继续寻找解决方案。