コントリビュート
このプロジェクトへのコントリビュートにご関心をお寄せいただきありがとうございます!
警告: ⚠️ 新しい関数の追加速度の低下
VueUse のユーザーが増え続けるにつれて、機能リクエストとプルリクエストが殺到しています。その結果、プロジェクトの維持がますます困難になり、私たちの能力の限界に達しています。そのため、近い将来、新しい機能の受け入れを遅らせ、既存の関数の安定性と品質を優先する必要があるかもしれません。現時点では、VueUse の新しい機能は受け入れられない可能性があります。新しいアイデアがある場合は、まず独自のコードベースにそれらを組み込み、必要に応じて反復処理を行い、一般化可能性を評価することをお勧めします。あなたのアイデアがコミュニティにとって有益であると強く信じている場合は、ユースケースとともにプルリクエストを送信してください。喜んでレビューおよび議論させていただきます。ご理解のほどよろしくお願いいたします。
開発
セットアップ
このリポジトリをローカルマシンにクローンして、依存関係をインストールします。
pnpm install
迅速な開発とドキュメント作成のためにVitePressを使用しています。ローカルで開始するには
pnpm dev
コントリビュート
既存の関数
既存の関数を自由に拡張できます。破壊的な変更を導入しないようにしてください。
新しい関数
新しい関数追加に関するいくつかの注意事項があります。
- 作業を開始する前に、まず問題を開いて議論することをお勧めします。
- 実装は、フォルダとして`packages/core`の下に配置し、`index.ts`で公開する必要があります。
- `core`パッケージでは、このパッケージは可能な限り軽量にすることを目的としているため、サードパーティの依存関係を導入しないようにしてください。
- サードパーティの依存関係を導入したい場合は、@vueuse/integrations にコントリビュートするか、新しいアドオンを作成してください。
- 関数テンプレートは`packages/core/_template/`にあります。詳細は関数フォルダセクションで説明されています。
- 関数のドキュメントを作成する際、`<!--FOOTER_STARTS-->`と`<!--FOOTER_ENDS-->`はビルド時に自動的に更新されるため、更新する必要はありません。
パッケージの`index.ts`を更新する必要はありません。自動生成されます。
新しいアドオン
新しいアドオンは大歓迎です!
- `packages/`の下に新しいフォルダを作成し、アドオン名に設定します。
- `scripts/packages.ts`にアドオンの詳細を追加します。
- そのフォルダの下に`README.md`を作成します。
- コアパッケージと同様に機能を追加します。
- コミットしてPRとして送信します。
プロジェクト構造
モノレポ
複数のパッケージにモノレポを使用しています。
packages
shared/ - shared utils across packages
core/ - the core package
firebase/ - the Firebase add-on
[...addons]/ - add-ons named
関数フォルダ
関数フォルダには通常、これらの4つのファイルが含まれています。
`packages/core/_template/`でテンプレートを見つけることができます。
index.ts # function source code itself
demo.vue # documentation demo
index.test.ts # vitest unit testing
index.md # documentation
`index.ts`では、関数名を指定してエクスポートする必要があります。
// DO
export { useMyFunction }
// DON'T
export default useMyFunction
`index.md`では、最初の文が関数リストの短い紹介として表示されるため、簡潔で明確にしてください。
# useMyFunction
This will be the intro. The detail descriptions...
ガイドラインの詳細については、こちらをご覧ください。
コードスタイル
開発用依存関係をインストールする限り、コードスタイルを気にする必要はありません。Gitフックがコミット時に自動的にフォーマットおよび修正します。
謝辞
このプロジェクトにご関心をお寄せいただき、改めて感謝申し上げます! 素晴らしいですね!