概念
@aws/nx-pluginはNxプラグインで、AWS上でフルスタックアプリケーションを構築・デプロイするためのツールキットを提供します。本番環境対応のアプリケーションコード_と_それをデプロイするためのインフラストラクチャをスキャフォールディングするGeneratorsのコレクションを提供し、タイプセーフでローカル実行可能、すぐにデプロイ可能な状態を実現します。
白紙の状態から始めるのではなく、あなた(またはあなたのAIエージェント)が必要なコンポーネント(API、ウェブサイト、認証、AIエージェント、インフラストラクチャなど)を選択し、いくつかの設定オプションを提供すると、プラグインがベストプラクティスに基づいたスターターコードを生成します。さらに、プロジェクト間を自動的に接続し(既存ファイルのAST変換による更新を含む)、フロントエンドとバックエンド間でタイプセーフなクライアントを生成します。
Nxとそのジェネレータを基盤として構築
Section titled “Nxとそのジェネレータを基盤として構築”Nxはモノレポを管理するためのスマートビルドフレームワークです。言語に依存せず、TypeScript、Python、インフラストラクチャなどを単一のワークスペース内で共存させ、一緒にビルドできます。ビルドシステムはキャッシュと依存関係グラフ分析を使用して、変更された部分のみを再ビルドし、タスクを並列実行することで、ワークスペースが成長してもテスト、リント、ビルドを高速に保ちます。
@aws/nx-pluginのすべての機能は、NxのGeneratorとして提供されます。これは、事前定義されたテンプレートから一貫したコード構造を生成する自動スキャフォールディングです。ジェネレータはNx CLI、Nx Console IDEプラグイン、またはNx Plugin for AWS MCP Serverを通じてAIアシスタントから呼び出すことができます。
すべてのコンポーネントがジェネレータであるため、必要なものを必要なときにのみ追加できます。APIから始めて、後でウェブサイトを追加し、準備ができたら接続する、各ステップは単一のコマンドです。
実績のあるフレームワークで構築
Section titled “実績のあるフレームワークで構築”@aws/nx-pluginは、すでに知っているツールの上にカスタム抽象化を構築することを意図的に避けています。独自のフレームワーク、ランタイム、ラッパーを発明する代わりに、確立された広く採用されているオープンソースプロジェクトを使用して慣用的なコードをスキャフォールディングします。これは、既存のスキルが直接活用でき、各フレームワークの公式ドキュメントに依存でき、このプラグインだけが理解するレイヤーにロックインされることがないことを意味します。
生成されるコードは、最高クラスのフレームワークの上に構築されています:
プラグインの価値は、これらの部品がAWS向けにどのように設定され接続されているかにあり、それらを置き換えることではありません。
自由な修正が可能
Section titled “自由な修正が可能”生成されたコードはすべて_あなたの_コードです。@aws/nx-pluginはビルド時のツールであり、ランタイムの依存関係ではありません。ジェネレータが実行された後は、プラグインは関与しません。生成されたすべてのファイルを読み、コミットし、好きなように変更できます。
これは以下を意味します:
- エスケープハッチは不要。 ジェネレータが想定していないことを行う必要がある場合に、学習したり格闘したりする独自の設定サーフェスはありません。自分で書いたコードを編集するのと同じように、生成されたコードを直接編集します。
- 新しい抽象化レイヤーはなし。 ジェネレータは、基盤となるフレームワークのための平易で慣用的なコードを出力します。React、tRPC、FastAPI、CDK、その他のツールとあなたの間に位置するラッパーAPIやマジックな間接層はありません。見たものがそのまま実行されます。
- プラグインは依存関係ではない。 コードを生成して退きます。アプリケーションは実行時に
@aws/nx-pluginをインポートしたり依存したりしないため、プラグインによってブロックされることもロックインされることもありません。
生成されたコードに不満がある場合は、自由に修正できます。ジェネレータは出発点を提供するものであり、檻ではありません。
最小限の依存関係
Section titled “最小限の依存関係”@aws/nx-pluginはグローバル依存関係の数を最小限に抑えるよう努めています。開始するために必要なものは、呼び出すジェネレータによって決まります。
例として、TypeScriptベースのジェネレータではNodeのインストールのみが必要です。PythonベースのプロジェクトではUVが唯一の要件となります。
タイプセーフティ
Section titled “タイプセーフティ”@aws/nx-pluginはタイプセーフティを採用し、IDE補完による開発者体験の向上と、非タイプセーフ実装でのみ発生するランタイムエラーの排除を実現します。そのため、提供されるすべてのコンポーネントはデフォルトでタイプセーフです。
タイプセーフティはプロジェクトの境界を越えて流れます。ウェブサイトをAPIに接続すると、生成されたクライアントはバックエンドと型を共有するため、APIコントラクトの変更は本番環境でのバグではなく、フロントエンドでのコンパイル時エラーとして表面化します。自信を持ってリファクタリングできます。