貢獻
感謝您對貢獻此專案感興趣!
警告: ⚠️ 減緩新增函式的速度
隨著 VueUse 的受眾持續增長,我們收到了大量的功能請求和 Pull Request。因此,維護這個專案變得越來越具挑戰性,並使我們的能力達到極限。因此,在不久的將來,我們可能需要減緩接受新功能的速度,並優先考慮現有函式的穩定性和品質。請注意,此時可能不會接受 VueUse 的新功能。 如果您有任何新想法,我們建議您首先將它們納入您自己的程式碼庫中,反覆修改以滿足您的需求,並評估它們的通用性。如果您堅信您的想法對社群有益,您可以提交包含您的用例的 Pull Request,我們將很樂意審查和討論它們。感謝您的理解。
開發
設定
將此儲存庫克隆到您的本地電腦並安裝依賴項。
bash
pnpm install
我們使用 VitePress 進行快速開發和文檔編寫。您可以透過以下方式在本地啟動它
bash
pnpm dev
測試
bash
pnpm test:unit # to run unit tests
如果您想使用實驗性瀏覽器測試,您需要先安裝 playwright 依賴項。
bash
nlx playwright install --with-deps
然後運行
bash
pnpm test:browser
貢獻
現有函式
隨時增強現有函式。請盡量不要引入重大變更。
新函式
以下是一些新增函式的注意事項
- 在您開始工作之前,最好先開啟一個 issue 進行討論。
- 實作應放置在
packages/core
下的資料夾中,並在index.ts
中公開。 - 在
core
套件中,盡量不要引入第三方依賴項,因為此套件旨在盡可能輕量。 - 如果您想引入第三方依賴項,請貢獻到 @vueuse/integrations 或建立一個新的附加元件。
- 您可以在
packages/core/_template/
下找到函式模板,詳細資訊請參閱函式資料夾部分。 - 當您為您的函式編寫文檔時,
<!--FOOTER_STARTS-->
和<!--FOOTER_ENDS-->
將在建置時自動更新,因此您無需更新它們。
請注意,您不需要更新套件的
index.ts
。它們是自動產生的。
新附加元件
非常歡迎新的附加元件!
- 在
packages/
下建立一個新資料夾,將其命名為您的附加元件名稱。 - 在
scripts/packages.ts
中新增附加元件詳細資訊 - 在該資料夾下建立
README.md
。 - 像對核心套件一樣新增函式。
- Commit 並作為 PR 提交。
專案結構
Monorepo
我們使用 monorepo 來管理多個套件
packages
shared/ - shared utils across packages
core/ - the core package
firebase/ - the Firebase add-on
[...addons]/ - add-ons named
函式資料夾
一個函式資料夾通常包含以下 4 個檔案
您可以在
packages/core/_template/
下找到範本
bash
index.ts # function source code itself
demo.vue # documentation demo
index.test.ts # vitest unit testing
index.md # documentation
對於 index.ts
,您應該使用名稱匯出函式。
ts
// DO
export { useMyFunction }
// DON'T
export default useMyFunction
對於 index.md
,第一句話將顯示為函式列表中的簡短介紹,因此請盡量簡潔明瞭。
markdown
# useMyFunction
This will be the intro. The detail descriptions...
閱讀更多關於 準則。
程式碼風格
只要您安裝了開發依賴項,就不必擔心程式碼風格。Git hooks 將在提交時為您格式化和修復它們。
感謝
再次感謝您對此專案感興趣!您真棒!