达成成就 - Nuxt Contributor 😁

过了很久才决定写下这篇文章,记录一下参与Nuxt的贡献历程,没想到有一天可以参与到 Nuxt 56.8k star (2023.04 ~ 2025.04)的贡献当中,也权当做一次这几年的回顾。

前情提要

2023年做一个服务端渲染的项目,从Nuxt地球最强无对手ssr框架两个框架中,都做了项目试点。最终决定后续项目都使用Nuxt去做,对于Vue开发者的使用上来讲,使用Nuxt框架更简单,版本更新迭代更快。当然只是更主观意识的选择,两个框架都很好。

参与贡献

第一次PR

其实为什么能参与贡献,主要是因为项目中正好碰到了这个问题,但是并不是一个很大的问题。

其实只是在执行preview的时候,配置的路径问题

ts 复制代码
nitro: { output: { dir: '~/node-server' } }

会提示找不到nitro.json,当时在我比较肤浅的眼光看来,这就是一个路径问题,处理一下~/就可以解决这个了~

然后秉承着这个问题我可以解决的态度,然后根据Nuxt contribution guide(当时还是个README),提交了如下代码

ts 复制代码
const serverOutputDir = config.nitro.output?.dir?.replace(/^~\//, '') || '.output'

第一次参与这种大型项目的代码贡献,心里很忐忑(好歹不是简单的改个文档~)

不过并没有那么简单,哈哈哈😁

在我提完这个PR后,得到了danielroe(Nuxt Maintainer)很明确的说明,这样可能会有其他额外的开销问题,他不愿意这样合并。当然,后续得到了pi0的解释,预览功能在本地,有开销也可以接受,他就同意了本次的修改,本来以为approve之后,我的改动会被合并进去~心里还挺激动的😄,毕竟参与了这么大型的开源项目,理想很丰满,现实很骨感,最终只有两行引入是我改动的,其他的处理被danielroe改掉了😭,也勉强算是一次有效的参与吧。

但是第一次参与大型开源项目,还是这么大的项目,心里肯定是相当激动的~能合并进去,对我来说也是很强的鼓励了。

详情可见:fix(nuxi): preview nitro build with custom dir config

第一次Fix的PR

然后一直基本到2024.07之前,基本都是碰到文档问题,不太清晰明了的,去帮助做一下修改。

2024.07正好碰到一个我可以处理的definePageMeta属性合并问题,这回靠自己处理好了

详情可见:fix(nuxt): merge route meta properties with scanned meta

第一次Feat的PR

2024.10正好使用definePageMeta,然后发现跟vue-route结合还是挺紧密的,但是却没有props的设置,查看了一下源码,发现其实加起来也并不麻烦,所以就进行了一次增强

csharp 复制代码
-- pages
   -- [params]
      -- [id].vue

// [id].vue
<script setup lang="ts">
definePageMeta({
  props: true,
})
const { params, id } = defineProps<{
  params: string
  id: string
}>()

console.log(params, id)
</script>

详情可见:feat(nuxt): allow enabling route props in definePageMeta

2024 ~ 2025

后面就是在项目的使用过程中碰到的问题,自己可以解决的,就去fix一下,文档显示不清楚的,就去修改一下,有标注enhancement的,看过之后会加的,就feat一下~

感触

其实没想到不知不觉都过了两年时光了(2023 ~ 2025),与Nuxt的纠缠也越来越深了,基本现在开发所有的业务项目,都是使用Nuxt,对于我们来讲,约定>配置,确实方便了开发,降低了开发难度,心智负担,但是想写好还是有难度的。

最后对于参与开源这个事情,迈出第一步其实还是挺难的,但是你参与过后,发现也并没有很难,即使改个文档,能被合并也是你的能力,你能发现别人没有发现的问题~ 一起加油吧!!

最后放两张图吧,互勉❤

相关推荐
尖椒土豆sss11 天前
Nuxt3框架入门:第一个简单demo
前端·nuxt.js
尖椒土豆sss16 天前
Nuxt3框架入门:初始化项目
前端·nuxt.js
林梦泽21 天前
使用Cloudflare搭建Sink短链接|榨干大善人
nuxt.js
uhhuh25 天前
关于Nuxt框架中的数据持久化问题
nuxt.js
用户061760544431 个月前
关于Nuxt3+Vue3的基础使用
nuxt.js
程序员爱钓鱼1 个月前
在 Nuxt 3 中实现和使用 SEO 数据:通过 useState 管理全局 SEO 信息
vue.js·后端·nuxt.js
仿生狮子2 个月前
Reka UI 是个啥?
vue.js·nuxt.js·ui kit
MurphyChen2 个月前
🧭 React 组件通信指南:父传子、子传父、任意组件通信
前端·react.js·nuxt.js
四木呀2 个月前
Nuxt3 实现接口域名动态化
前端·nuxt.js