2022 年三月份,我寫過一篇自我介紹的流水帳文章,總結了我在大學之前的技術經歷。如果還沒看過,先去閱讀上一篇文章再繼續看吧~
現在是時候來講講我與開源的故事流水帳了 😎!
初來乍到 2020 年 18 歲 大一#
回到之前文章中提到的時間線 ——2020 年,疫情元年,也正是我高考的那年。進入大學之後,比起高中就算是自由了。有更多的時間探索和捣鼓自己真正想做的事情了。
2020 年 9 月,Vue 發布了 3.0 正式版。看到 Vue 的 Composition API 非常戳我,也對 Vue Composition API 相關生態十分關注。在寫自己的項目的時候,也嘗試去使它。
之後使用到了 VueUse 這個庫。但是 VueUse 還不是特別成熟,在使用的時候發現了一些小問題,當即就去 GitHub 發了個 PR,後對 VueUse 這個項目比較感興趣,就陸續提了 6 個 PR。這件事算是我對開源社區感興趣的契機。跟 Anthony Fu 也混了個臉熟 😇。
總的來說,在 2020 年只是對開源抱有一些興趣,但是大部分時間還是繼續在維護自己的項目。項目中遇到問題,去 GitHub 提 issue 和 PR 已經比較熟練了🤣。
小試牛刀 2021 年 19 歲 大二#
距 Vue 3 發布正式版已經過去了一年,然而我自己的項目還在使用 Vue 2,一直想遷移到 Vue 3。但奈何當時 Vue 2 + Element UI 遷移到 Vue 3 + Element Plus 真的非常繁瑣,所以沒辦法還是繼續用 Vue 2。
後來 Anthony Fu 發了個推文,說他做了個 unplugin-vue2-script-setup 可以在 Vue 2 中使用 <script setup>
語法。有了這個插件,總算是有現在 Vue 2.7 的影子了。我在那條推文下面問了下,能不能支持 ref sugar take 2(也就是現在的 Reactivity Transform),得到回覆說等這個提案穩定了再做(結果現在都 2023 了,Vue 2.7 都發布了,Reactivity Transform 還沒穩定 😅)。我當時感覺到這個提案遙遙無期(果然吧 🤓),就自己提了個 PR 把這個功能做了。後來 Anthony 發了個推特 at 了我,當時感覺贼有成就感。
這是我第一次在開源中得到認可 🤩。
Element Plus#
這年暑假,最終還是把其中一個項目升級到了 Vue 3。自然也把 Element UI 升級到了 Element Plus。在遷移到 Element Plus 的時候,也發現了它的一些小問題,就發了個 issue。當時 Element Plus 的維護者鼓勵我自己嘗試去修一修,我就發了個 PR 給修了。
由於有之前的貢獻開源的經歷,當時也有興趣找維護者問了問:我能不能參與維護這個庫。得到肯定的答復之後,就被騙拉過去當維護者了,正式走上開源這條不歸路了😆!(其實也是寫業務寫麻了 🤫)
當時進 Element Plus 團隊的時候,Element Plus 還在 1.x beta 版,還存在一些 Bug 和遠古時期的代碼。在閱讀代碼的時,也一邊瘋狂發 PR —— 發起了一個重構計劃。把 TypeScript 改為嚴格模式、重構了構建流程等等。因為之前都是自己一個人維護項目的,加入 Element Plus 團隊之後,社區的小夥伴也非常熱心,手把手帶我了解了 GitHub 的工作流和開源項目的協作是怎麼樣的。
以現在的視角,重新回過頭看這段經歷。這是我開源的第一站,第一次與一群志同道合的夥伴討論項目和代碼。這段時間,把幾乎所有的業餘時間都花在維護 Element Plus 上面,一上完課就跑回宿舍看 PR 🤖。
這段時間在開源社區學到了非常多的東西,是我飛速成長的時期。因為 Element Plus 是一套 Vue 的 UI 庫,整天和 Vue 打交道,我對 Vue 也有了更深的了解。除此之外,還有很多都是自己不懂的,把 Rollup、unplugin、esbuild、ESM 與 Common JS 等都研究了一遍。
很多項目也是在維護 Element Plus 的期間誕生和認識的。unplugin-vue 是改 Element Plus 的構建工具的時候而寫的 Rollup 插件。unplugin-vue-macros 是去年為 Element Plus 遷移 <script setup>
語法而做的工具。還把 unplugin-vue-components 與 unplugin-auto-import 寫到了 Element Plus 的官方文檔中。
總之,2021 年是我正式參與開源的第一年。4 個多月的時間裡提了 200 多個 PR,為 Vue 周邊的生態做了一些小貢獻,期間也為 Vue 3 提了我的第一個 PR 😎。
漸入佳境 2022 年 20 歲 大三#
如果說 2021 是一個好的開始,那 2022 年對我來說絕對是意義非凡的一年。
這年二月,隨著過完了春節,Vue 在農曆初七把 Vue 3 切換成了默認的版本,Element Plus 也同時發布了第一個正式版。然而在背後,春節期間我在幫忙完善最後的一些細節與文檔,在除夕夜還在忙著發版 🤣。
這年為 Vite 貢獻了我的第一個 PR。在為 Element Plus 遷移到 <script setup>
語法的時候,為 Vue 提了我的第一個 RFC。非常榮幸地收到了尤雨溪 Evan You 兩個 Twitter 帳號的關注。
在三月份,在 Element Plus 的小夥伴的幫助下,我開通了 GitHub Sponsor。收到了來自開源社區的第一桶金 🥳!目前已經收到 49 位夥伴的支持!在這非常感謝大家對我的幫助和認可 ❤️。
在 2021 年其實有想過去哔哩哔哩直播寫代碼,但是只是說說而已。但今年終於付出行動了。契機是 Anthony Fu 去直播了,我覺得挺好玩的。時不時在 B 站直播寫代碼或聊天,也認識了不少的朋友!
卷起來了
下半年,我也逐漸把視野放到了 Element Plus 以外的項目上,自己瞎捣鼓寫一些玩具,同時也維護著自己的一些庫,反正就是到處修修補補蹭一蹭 PR 吧 🤪。本年我花最多時間的個人項目是 Vue Macros。通過這個項目,解鎖了一些奇怪的用 Vue 的方式 ——Vue 探索版 (不是)。通過這個項目,我參加了 Nuxt Nation 2022。受 Haoqun Jiang 的邀請,也參與了 Vue Conf China 2022,這也是我第一次參與到 Vue 社區的演講中。但是遺憾的是,由於眾所周知的原因,到目前為止都還沒有參與過線下的聚會。
本年還錄製了《開源面對面》的播客節目,這也是我第一次參與錄製博客。因為是第一次,所以可能會比較局促一點 🫣,還請見諒。在錄製完成後,還為《開源面對面》製作了一個官網。
本年最大成就是加入 Vue 團隊了!有段時間放了很多精力在 Vue 倉庫,在為 Vue 做了好些個貢獻後,同時在 Anthony Fu 的提名推薦下,我成為了 Vue 團隊的一員。這是對我極大的認可和鼓勵。作為 Vue 團隊最年輕的成員,目前還比較菜🥬,我要學習的東西還非常多。對 Vue 的理解可能也不是那麼的深刻,所以需要繼續向前輩們學習 🫡。
當然在開源社區有快樂的事情,自然也有鬧心的事情 —— 某些不可理喻的 issue。好在參與開源社區比較久了,我已經自帶免疫了。碰到這種 issue 我會純粹當作一個熱鬧來看,發到網上當一樂子。詳見 Twitter #迷惑 issue 大賞。
本年上半年參與最多的社區項目是 Element Plus,前文已介紹,不多贅述。下半年則是 Elk 鹿鳴,基於 Vue 技術棧開發的一個 Web 版的 Mastodon 客戶端。最初是 Anthony Fu 創立了這個項目,後面我自己有段時間感覺無聊,就把我也邀請進來了。之後有段時間經常與團隊的 Patak 和 Daniel Roe 溝通,以至於過成了歐洲時間 GMT+1 了 🤣。通過 Elk 鹿鳴,讓更多 Vue 社區的小夥伴參與進來了!我學習到了各種各樣的技術棧:Nuxt、PWA、Tauri 等等。
鳴謝 蹭熱度#
不過這年收穫最大的還是認識了非常多來自開源社區的朋友們 ——Anthony Fu、ShenQingchuan、webfansplz、Haoqun Jiang、Patak、Daniel Roe、Johnson Chu、LittleSound 等等!很難想象在前兩年遙不可及的大佬們,現在可以時常進行討論 (談笑風生!🤪)
今年在諸多朋友的幫助下,獲得了許多的成就。可謂是成就感滿滿的一年。在此我想向 Evan You 和 Patak 等我的贊助者和朋友們致謝。多虧了 Patak 和 Evan You 贊助了我,有了他們的認可後收到了更多的贊助,對我意義非凡。
👋 未來,2023#
🚩 目標#
-
博客 & 文章
希望在 2023 年把我年久失修、已經長草了的博客翻新一下。因為博客太舊,就也沒有動力寫文章了。平時多去寫點總結性的文章。避免明年的年終總結再寫個流水帳 🥲。其實我不怎麼善於表達,所以多寫點文章練練手可能會改善一些。
(願你博客半生,歸來時仍是 GitHub Gist 🤣 -
做出一個自己滿意的開源項目
希望自己能做出一個規模大一些、令自己滿意的開源項目 🤔。
-
線下 Conf
也由於眾所周知的原因,2023 年有更多機會參與海外的演講。所以希望能多參與一些線下的演講。希望能在 Vue.js Amsterdam 2023 見到各位。👋
-
潤
抓到我#
更多我的日常,可以通過以下網站關注我 💖