打造 10000 Star 的前端開源專案

2021-09-08 05:35:20 字數 1654 閱讀 4776

那麼,開源專案怎麼才能獲得更多的 star 數呢?這裡通過總結我這段時間維護 day.js 專案的過程中的一些經驗教訓,來說說如何改進和推廣你的開源專案。

比如我在工作中發現 moment.js 雖然能很方便地處理日期和時間但這個庫打包體積太大了,而要想遷移到社群其他幾個輕量的時間庫又會增加新的學習成本和遷移工作量。所以開發 day.js 的目標就是做乙個和 moment.js 一樣 api 設計,一樣功能,更加輕量的時間日期庫。

相較與專案本身的**和文件等,開源協議可能是乙個容易被忽視的細節。開源協議是軟體的授權許可,表述了使用者獲得你開源的**後擁有的權利和義務。

我在初期推廣時就犯了個錯誤,沒意識到開源協議的重要性,也沒有給專案新增任何協議。在版權意識相對更強的英文社群宣傳時就遇到了很大的阻力和各種質疑,他們覺得這樣的專案是不專業的,也不敢去輕易嘗試,就這樣白白錯失了一部分初始使用者。

關於怎麼去選擇乙個適合專案的開源協議,可以參考這個** choose license。如果你希望專案可以盡可能被廣泛地推廣、使用和傳播,就可以考慮選擇乙個分發自由度比較高的開源協議。

使用乙個規範的 git 提交記錄是很有必要的,這不僅讓多人開發中的參與者能更好地了解專案的迭代歷史和程序,也能在出現問題時快速定位,找到問題**的提交記錄。同時我們還可以使用工具根據提交記錄自動生成更新說明 (changelog),方便使用者了解每次更新的具體內容,也免去了專案維護者手動更新的痛苦。

目前前端社群中使用較多的 git commit 提交規範是 angular 規範 (git commit message conventions ),commit 的格式包含 header、body、footer 三個部分:

():
每個社群都有自己的版本號規範,千萬不能因為是自己的開源專案就隨心所欲地填寫版本號,不然可能會給使用者帶來不必要的麻(彩)煩(蛋)。在 npm 生態圈中絕大部分包都是使用語義化版本號 (semantic versioning),即版本號為 a.b.c 的形式,其中 a 是大版本號,b 是次版本號,c 是修訂號。

如果開源專案有按上文所述規範地提交 commit ,就可以使用 semantic-release 來實現全自動更新版本號和發布,這個工具會判斷 commit message 的不同,fix 增加修訂號,feat 增加次版本號,而包含 breaking change 的提交增加大版本號。

在推廣 day.js 的過程中,我會在 twitter 大佬們吐槽 date 函式、 moment.js 庫的推文下,介紹我的專案的特點,希望他們可以嘗試一下(但要有禮貌,廣告別太硬)。社群紅人的乙個 star 或一條支援的推文就能依靠社交網路快速傳播,給專案帶來巨大的流量和很高的關注度。

在每次的重大功能更新或集中推廣之後,我們要通過專案的 pull request, issue, star, download count 等資料的變化來了解推廣效果和使用者的滿意度。前端工程師都知道,比起一堆數字,視覺化的資料圖表可以幫助我們更好地理解資料。

開始做乙個開源專案並不難,要勇敢地邁出自己的第一步。但是持續維護開源專案並不是一件很容易堅持下來的事,我們需要找到自己維護專案的動力,給使用者提供必要的支援,收集使用者的反饋,不斷完善專案,進而形成乙個完整的產品閉環來推動專案的不斷迭代更新。

當然能做到這些, star 數量的多少已經不是那麼重要了,我們豐富了開源社群的內容,幫助了更多的開發者,也從開源的經歷中得到了視野的拓展,能力的提公升,這才更有價值的收穫。

打造 10000 Star 的前端開源專案

那麼,開源專案怎麼才能獲得更多的 star 數呢?這裡通過總結我這段時間維護 day.js 專案的過程中的一些經驗教訓,來說說如何改進和推廣你的開源專案。比如我在工作中發現 moment.js 雖然能很方便地處理日期和時間但這個庫打包體積太大了,而要想遷移到社群其他幾個輕量的時間庫又會增加新的學習成...

如何打造乙個上千Star的Github專案

每乙個程式設計師都或多或少接觸過 github 至少是聽說過吧。而 github 最大的好處是在於程式設計師可以不用付出任何費用,可以在上面參考 借鑑甚至是照搬其他人貢獻的專案,因為這一切都是開源的。github 作為世界上最大的開源專案管理中心,可以讓任何人有機會打造乙個上千 star 的 git...

打造Win下類似MacOS的rails開發環境

之前看了一篇 打造win下的mac os開發環境 著實不錯,但其中有些東西弄的過於複雜,在這裡俺將其簡化再簡化 1.安裝cygwin,網上有個fuulinstaller 2.安裝e texteditor 3.在windows上安裝mysql ruby rubygems rails,注意這些都是在wi...