貢献ガイド

Nuxt.js への貢献はどんなものでも大歓迎です!

問題の報告

このプロジェクトに貢献する一番の方法は、問題に遭遇したときに詳細なレポートを送ることです。 貢献者とメンテナーが問題を把握しやすくするために、私たちは CMTY を使用しています。

問題を再現できるリポジトリか CodeSandBox を報告に含めてください。そうすれば、多大な努力なしにバグを再現できます。バグが再現できれば修正を早く進めることができます!

プルリクエスト

たとえ単なるタイプミスの修正であっても、プルリクエストは大歓迎です!

しかし、どんな重要な改善であっても既存の feature request または bug report に関連しているべきです。

始める

  1. Nuxtのリポジトリを自身の GitHub account に Fork し、ローカルに clone します。
  2. npm install または yarn install を実行し、依存関係のあるパッケージをインストールします。

npmyarn 共に依存関係のあるパッケージをインストールし忘れていないか注意してください。これを解決するには、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

より大きな機能を使っている場合は、サンプルアプリケーションを examples/ に設定してください。 これは変更の理解を大いに助け、Nuxt ユーザーが緻密に構築した機能を理解するのに役立ちます。

Linting

既にお気づきのように、コード標準を実施するために ESLint を使用しています。コミットする前に yarn lint を実行しコードのスタイルが正しいことを確認してください。もしそうしなければ、yarn lint --fix または npm run lint -- --fix(typo じゃありません!)を使ってスタイルの変更を行うことができます。まだエラーが残っている場合は、手動で修正する必要があります。

ドキュメント

新しい機能を追加する場合は、リファクタリングを実行するか、他の方法で Nuxt の動作を変更します。そうすると、恐らくドキュメントを変更したくなると思います。docs に PR してください。 すぐにドキュメントを書く必要はありません(しかし、プルリクエストが成熟したらすぐに実行してください)。

最終チェックリスト

PR を送った後、記入しなければならないシンプルなテンプレートがあります。 チェックリストに適切な「回答」をすべて記入してください。

トラブルシューティング

macOS でデバッギングテスト

getPort() で検索すると、テスト中に Nuxt プロセスが使用しているポートを見つけることができます。 時々 macOS 上で動作が止まることがあるので、テストのために手動でポートを設定する必要があるかもしれません。

別の一般的な問題は、フィクスチャテストを実行している際に Nuxt プロセスがハングする可能性があります。ゴーストプロセスは、しばしば後続のテストの実行を妨げます。この事象が起きていそうであれば、ps aux | grep -i node を実行して、ハングしているテストプロセスを調査します。

間違いを見つけた、またはドキュメントに貢献したいですか? GitHub でこのページを編集する