概念
@aws/nx-plugin
はNxプラグインで、AWS上でのフルスタックアプリケーション構築とデプロイプロセスを簡素化するツールキットを提供します。開発者向けにアプリケーションコードとIaCコードの事前設定済みテンプレートを提供し、セットアップと設定に費やす時間を大幅に削減します。AWSサービス統合の複雑さを処理しつつ、カスタマイズの柔軟性を維持します。
ユーザーは利用可能なGeneratorsリストから必要なコンポーネントを選択し、設定オプションを提供するだけで、@aws/nx-plugin
が必要なスターターコードを生成します。API、ウェブサイト、インフラストラクチャの作成から、フロントエンドとバックエンドの統合(既存ファイルのAST変換による更新を含む!)やタイプセーフなクライアントの生成まで、様々な高度な機能を備えたジェネレータが存在します。

Nxを基盤として構築
Nxは、高度なビルドシステムとコードジェネレータという2つのコア機能を通じて、複雑なポリグロットプロジェクトの管理に優れたスマートビルドフレームワークです。
ビルドシステムは高度なキャッシュ技術と依存関係グラフ分析を活用し、タスク実行を最適化します。コード変更に基づいて必要な部分のみをリビルドするため、ビルド時間を大幅に短縮します。タスクは並列実行可能で、Nxがプロジェクトの依存関係に基づいて最適な実行順序を自動決定します。これにより、テスト、リンター、ビルドなどの操作が大規模コードベースでも効率的に行えます。
ジェネレータは自動化されたスキャフォールディングツールとして機能し、プロジェクト間で一貫したコード構造を作成します。個々のコンポーネントから完全なアプリケーションまで、事前定義されたテンプレートとパターンに従って生成可能です。チームは特定の要件やコーディング規約に合わせてこれらのジェネレータをカスタマイズできます。
これらの機能を組み合わせることで、Nxはモノレポの管理やチーム間での一貫した開発プラクティスの維持に特に効果を発揮し、高い開発速度を維持します。
ジェネレータ
本プラグインで利用可能なすべてのコンポーネントはGeneratorsとして実装されており、反復タスクの自動化と新規/既存プロジェクトの一貫したスキャフォールディングを可能にします。
ジェネレータはNx CLIまたはNx Console IDEプラグインを通じて起動できます。

自由な修正が可能
生成されたコードはすべてユーザーの所有物であり、自由に編集できます。生成コードに不満がある場合でも直接修正可能なため、開発者体験が大幅に簡素化されます。
最小限の依存関係
@aws/nx-plugin
は依存関係の数を最小限に抑えるよう設計されており、起動に必要なグローバル要件は呼び出すジェネレータによってのみ決定されます。
例として、TypeScriptベースのジェネレータではNodeのインストールのみが必要です。PythonベースのプロジェクトではUVが唯一の要件となります。
単一バージョンポリシー
デフォルトのモノレポ設定では、NodeとPythonベースのプロジェクト共に単一バージョンポリシーを採用しています。
これによりモノレポ内の全プロジェクトがデフォルトで同じバージョンの依存関係を使用し、バージョン不一致による問題を軽減します。
Node環境ではルートに単一のロックファイルとnode_modules
が存在し、新しい依存関係はルートのpackage.json
に追加します。
Python環境ではルートに単一の.venv
が作成され、各Pythonプロジェクトは独自のpyproject.toml
を持ちますが、依存関係のバージョンはuvワークスペースによって管理され、ルートのuv.lock
ファイルに書き込まれます。
タイプセーフティ
@aws/nx-plugin
はタイプセーフティを採用し、IDE補完による開発者体験の向上と、非タイプセーフ実装で発生するランタイムエラーの排除を実現します。すべてのコンポーネントはデフォルトでタイプセーフに設計されています。
