Nuxt.js への貢献はどんなものでも大歓迎です!
このプロジェクトに貢献する一番の方法は、問題に遭遇したときに詳細なレポートを送ることです。 貢献者とメンテナーが問題を把握しやすくするために、私たちは CMTY を使用しています。
問題を再現できるリポジトリか CodeSandBox を報告に含めてください。そうすれば、多大な努力なしにバグを再現できます。バグが再現できれば修正を早く進めることができます!
たとえ単なるタイプミスの修正であっても、プルリクエストは大歓迎です!
しかし、どんな重要な改善であっても既存の feature request または bug report に関連しているべきです。
npm install
または yarn install
を実行し、依存関係のあるパッケージをインストールします。npm と yarn 共に依存関係のあるパッケージをインストールし忘れていないか注意してください。これを解決するには、
node_modules
ディレクトリを削除するか、未インストールの依存関係のあるパッケージをローカルでインストールしてください。
依存関係のあるパッケージをインストールする場合は、
yarn add
を使用してください。yarn.lock
ファイルは Nuxt に依存関係のあるパッケージ全てを示す確かな情報源です。
テストを実行する前に、依存関係のあるパッケージが全てインストールされていることを確認し、全てのパッケージをビルドします:
yarn
yarn build
バグフィックスまたは新機能を含む素晴らしい PR には、よくテストが含まれています。 素晴らしいテストを書くために、テスト構造について説明しましょう:
フィクスチャ(tests/fixtures
下にある)は、いくつかの Nuxt アプリケーションを含んでいます。ビルドにかかる時間をできるだけ短くするために、テスト毎に自身の Nuxt アプリケーションのビルドはしません。その代わり、実際のユニットテストを実行する前にフィクスチャが作られます(yarn test:fixtures
)。
PR を送る際、適切に変更が反映されるために 変更する または 新たなフィクスチャを追加する ことを明らかにしてください。(該当する場合)
また、jest test/fixtures/my-fixture/my-fixture.test.js
で対応するテストを実行し変更した後、フィクスチャをリビルドすることを忘れないでください!
ユニットテストは tests/unit
にあり、フィクスチャがビルドされた後に実行されます。新しい Nuxt サーバーはテスト毎に使われるため、共有状態は存在しません。(ビルドステップの初期状態を除く)
ユニットテストを追加した後、直接実行できます:
jest test/unit/test.js
または、全てのユニットテストスイートを実行できます:
yarn test:unit
再度、前もってフィクスチャをリビルドしなければならないかもしれないことに注意してください!
あなたの PR で作業している間はフィクスチャが正しく設定されているかどうかをチェックしたり、変更箇所をデバッグしたりしたくなると思います。
これを行うには、Nuxt スクリプト自体を使用して、フィクスチャまたはサンプルアプリケーションを起動します:
yarn nuxt examples/your-app
yarn nuxt test/fixtures/your-fixture-app
npm link
もまたこれに対して(ある程度は)動きますが、いくつか問題があることが知られています。そのため、サンプルを実行するためにyarn nuxt
を直接呼ぶことをおすすめします。
より大きな機能を使っている場合は、サンプルアプリケーションを examples/
に設定してください。
これは変更の理解を大いに助け、Nuxt ユーザーが緻密に構築した機能を理解するのに役立ちます。
既にお気づきのように、コード標準を実施するために ESLint を使用しています。コミットする前に yarn lint
を実行しコードのスタイルが正しいことを確認してください。もしそうしなければ、yarn lint --fix
または npm run lint -- --fix
(typo じゃありません!)を使ってスタイルの変更を行うことができます。まだエラーが残っている場合は、手動で修正する必要があります。
新しい機能を追加する場合は、リファクタリングを実行するか、他の方法で Nuxt の動作を変更します。そうすると、恐らくドキュメントを変更したくなると思います。docs に PR してください。 すぐにドキュメントを書く必要はありません(しかし、プルリクエストが成熟したらすぐに実行してください)。
PR を送った後、記入しなければならないシンプルなテンプレートがあります。 チェックリストに適切な「回答」をすべて記入してください。
getPort()
で検索すると、テスト中に Nuxt プロセスが使用しているポートを見つけることができます。 時々 macOS 上で動作が止まることがあるので、テストのために手動でポートを設定する必要があるかもしれません。
別の一般的な問題は、フィクスチャテストを実行している際に Nuxt プロセスがハングする可能性があります。ゴーストプロセスは、しばしば後続のテストの実行を妨げます。この事象が起きていそうであれば、ps aux | grep -i node
を実行して、ハングしているテストプロセスを調査します。
間違いを見つけた、またはドキュメントに貢献したいですか? GitHub でこのページを編集する