貢獻
感謝您對這個專案有興趣並願意貢獻!
警告:⚠️ 減緩新增函式的速度
隨著 VueUse 的受眾持續成長,我們已經被大量的特性請求和 Pull Request 所淹沒。因此,維護這個專案變得越來越具挑戰性,並且已經超出我們的負荷能力。因此,在不久的將來,我們可能需要減緩接受新特性的速度,並優先考慮現有函式的穩定性和品質。請注意,目前可能不接受 VueUse 的新特性。 如果您有任何新的想法,我們建議您首先將它們整合到您自己的程式碼庫中,反覆迭代以滿足您的需求,並評估它們的通用性。如果您強烈認為您的想法對社群有益,您可以提交包含您的用例的 Pull Request,我們將很樂意審閱和討論它們。感謝您的諒解。
開發
設定
將此 repo 克隆到您的本地機器並安裝依賴項。
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
套件中,盡量不要引入第三方依賴項,因為這個套件旨在盡可能輕量化。 - 如果您想引入第三方依賴項,請貢獻到 或建立一個新的附加元件。
- 您可以在
packages/core/_template/
下找到函式範本,詳細資訊請參閱 函式資料夾 章節。 - 在為您的函式編寫文件時,
和
將在建置時自動更新,因此您無需更新它們。
請注意,您不需要更新套件的
index.ts
。它們是自動產生的。
新增附加元件
非常歡迎新增附加元件!
- 在
packages/
下建立一個新資料夾,以您的附加元件名稱命名。 - 在
scripts/packages.ts
中新增附加元件詳細資訊 - 在該資料夾下建立
README.md
。 - 像對核心套件一樣新增函式。
- 提交並作為 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 會在提交時為您格式化和修復它們。
感謝
再次感謝您對這個專案感興趣!您太棒了!