跳到內容

貢獻

感謝您對貢獻此專案感興趣!

警告: ⚠️ 減緩新增函式的速度

隨著 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 將在提交時為您格式化和修復它們。

感謝

再次感謝您對此專案感興趣!您真棒!

在 MIT 許可證下發布。