コードのビルド
API Extractor は、Rush スタック プロジェクトファミリーのモノレポで開発されています。
https://github.com/microsoft/rushstack
関連する GitHub リポジトリ
- API Extractor のウェブサイトとドキュメント: https://github.com/microsoft/rushstack-websites
- ドキュメントコメント用の TSDoc パーサー: https://github.com/Microsoft/tsdoc
API Extractor のビルドに関する一般的な手順と PR を送信するためのガイドラインについては、Rush スタック モノレポの 貢献 ドキュメントをお読みください。
関心のある具体的なプロジェクトフォルダは次のとおりです。
上記の3つのプロジェクトをビルドした後、build-tests フォルダには、ビルドされた実行ファイルにシンボリックリンクされる多数のテストプロジェクトがあります。これらの「テスト」プロジェクトは、テストランナーを使用しません。代わりに、それらは現実的な NodeJS ライブラリプロジェクトをモデル化しており、その興味深い出力は Git によって追跡されます。したがって、出力が変更された場合は、更新された出力ファイルを Git にコミットすることを忘れないでください。(最終的には、Jest スナップショットと同様にこれを検証するビルドタスクを追加します。)
これらのテストプロジェクトは、モノレポ全体のビルド時間に影響を与えるため、新しいテストのほとんどは、api-extractor-scenarios と呼ばれるモノリシックプロジェクトに移動されました。これには、TypeScript コンパイラの単一の呼び出しによってコンパイルされる多数の小さなエントリポイントが含まれています。次に、runScenarios.ts ドライバーは、CompilerState
オブジェクトを使用してセマンティック分析を再利用し、各出力で API Extractor を起動します。これは、各プロジェクトを個別にビルドするよりも桁違いに高速です。
api-extractor-scenarios テストの一部は、外部パッケージから宣言をインポートする必要があります。これらのプロジェクトはその目的(およびその他の目的)で使用されます。