Nuxt 3 Release Candidate がリリースされました! v3.nuxtjs.org で詳細について見れます。

← 戻る

貢献ガイド

Nuxt へどんな貢献も大歓迎です!

貢献ガイド

Nuxt へどんな貢献も大歓迎です!

問題の報告

プロジェクトに貢献するには、問題が発生したときに詳細なレポートを送信するのが良い方法です: バグレポート

その際には、必ずバグを再現できるように、再現用のリポジトリや CodeSandBox を用意してください。バグの再現性が高ければ高いほど、早く修正に取り掛かることができます。

プルリクエスト

誤字脱字の修正だけでも構いませんので、プルリクエストをお待ちしております!

ですが、重要な改善は、既存の機能要求 またはバグレポート に関連付ける必要があります。

はじめる

  1. あなた自身の GitHub アカウントに Nuxt レポジトリ フォーク (Fork) し、それからあなたのローカルデバイスにクローン (clone) します。
  2. 依存モジュールをインストールするために npm install または yarn install を実行します。

npmyarn の両方で、依存関係のインストールを失敗することが確認されています。この問題を解決するには、サンプルアプリの node_modules ディレクトリを削除して再度インストールするか、不足している依存関係をローカルにインストールしてください。

依存モジュールを追加する場合は、yarn add を使用してください。 yarn.lock ファイルは、すべての Nuxt の依存関係の正しい源です。

セットアップ

テストを実行する前に、すべての依存するパッケージが満たされていることを確認し、すべてのパッケージをビルドします:

yarn
yarn build

テスト構造

バグ修正や新機能を含む優れたプルリクエストには、しばしばテストが含まれます。優れたテストを書くために、私たちのテスト構造を説明しましょう:

フィクスチャ

フィクスチャ (tests/fixtures の配下にあります) には、いくつかの Nuxt アプリケーションが含まれています。ビルド時間をできるだけ短くするために、テストごとに独自の Nuxt アプリケーションをビルドすることはありません。その代わり、フィクスチャは実際のユニットテストを実行する前にビルドされます (yarn test:fixture)。

プルリクエストを提出する際には、変更内容が適切に反映されるよう、必ず変えるまたは新しいフィクスチャの追加を行ってください(該当する場合)

また、フィクスチャを変更した後は、jest test/fixtures/my-fixture/my-fixture.test.js で対応するテストを実行して、フィクスチャを再構築することを忘れないでください!

単体テスト

単体テストは tests/unit にあり、フィクスチャのビルド後に実行されます。テストごとに新しい Nuxt サーバーが使用されるので、共有された状態(ビルドステップの初期状態を除く)は存在しません。

ユニットテストを追加した後は、それらを直接実行することができます:

jest test/unit/test.js

また、単体テストスイート全体を実行することもできます:

yarn test:unit

繰り返しになりますが、以前のフィクスチャを作り直さなければならないかもしれませんのでご了承ください!

変更のテスト

プルリクエストを作成している間に、フィクスチャが正しくセットアップされているかどうかを確認したり、現在の変更点をデバッグしたりすることがあるでしょう。

そのためには、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 (タイポではありません!) を使用して、ほとんどのスタイル変更を修正することができます。それでもエラーが残っている場合は、手動で修正する必要があります。

ドキュメント

新しい機能を追加したり、リファクタリングを行ったり、Nuxt の動作を変更したりする場合、その変更を文書化したいと思うでしょう。その際は、docs リポジトリにプルリクエストしてください。すぐにドキュメントを書く必要はありません(ただし、プルリクエストが十分に成熟したらすぐに書いてください)。

最終チェックリスト

プルリクエストを提出する際には、簡単なテンプレートが用意されていますので、それに沿って記入してください。チェックリストの適切な "回答 (anwers)" にすべてチェックを入れてください。

トラブルシューティング

macOS 上でのデバッグテスト

getPort() を検索すると、テスト中に新しい Nuxt プロセスを起動するために使用されていることがわかります。macOS では動作しないことがあり、テストのために手動でポートを設定する必要があるかもしれません。

また、よくある問題として、フィクスチャテストの実行時に Nuxt プロセスがメモリ内でハングアップすることがあります。ゴーストプロセスが発生すると、後続のテストが動作しなくなることがよくあります。この問題が発生していると思われる場合は、ps aux | grep -i node を実行して、ハングアップしているテストプロセスを調べてください。