Skip to content

コンセプト

@aws/nx-plugin は、AWS 上でフルスタックアプリケーションを構築およびデプロイするためのツールキットを提供する Nx プラグインです。ベストプラクティスのアプリケーションコード_と_それをデプロイするためのインフラストラクチャをスキャフォールドする ジェネレーター のコレクションを提供します — 型安全で、ローカルで実行可能、そして最初からデプロイ可能で、本番環境により近づけます。

白紙の状態から始めるのではなく、あなた(またはあなたの AI エージェント)が必要なコンポーネント — API、ウェブサイト、認証、AI エージェント、インフラストラクチャ — を選択し、いくつかの設定オプションを提供すると、プラグインがベストプラクティスのスターターコードを生成します。さらに、プロジェクトを自動的に接続し(AST 変換を介して既存のファイルを更新することも含む)、フロントエンドとバックエンド間で型安全なクライアントを生成します。

Nx とそのジェネレーターの上に構築

Section titled “Nx とそのジェネレーターの上に構築”

Nx は、モノレポを管理するためのスマートなビルドフレームワークです。言語に依存せず、TypeScript、Python、インフラストラクチャなどが単一のワークスペース内で共存し、一緒にビルドできます。そのビルドシステムは、キャッシングと依存関係グラフ分析を使用して、変更された部分のみを再ビルドし、タスクを並列実行することで、ワークスペースが成長してもテスト、リント、ビルドを高速に保ちます。

@aws/nx-plugin のすべての機能は、Nx ジェネレーター として提供されます — 事前定義されたテンプレートから一貫したコード構造を生成する自動スキャフォールディングです。ジェネレーターは、Nx CLINx Console IDE プラグイン、または Nx Plugin for AWS MCP Server を介してあなたの AI アシスタントによって呼び出すことができます。

すべてのコンポーネントがジェネレーターであるため、必要なものを必要なときにのみ追加します。API から始めて、後でウェブサイトを追加し、準備ができたら接続する — 各ステップは単一のコマンドです。

実績のあるフレームワークで構築

Section titled “実績のあるフレームワークで構築”

@aws/nx-plugin は、すでに知っているツールの上にカスタム抽象化を構築することを意図的に避けています。独自のフレームワーク、ランタイム、ラッパーを発明する代わりに、確立された広く採用されているオープンソースプロジェクトを使用して慣用的なコードをスキャフォールドします。これは、既存のスキルが直接引き継がれ、各フレームワークの公式ドキュメントに依存でき、このプラグインだけが理解するレイヤーにロックインされることがないことを意味します。

生成されたコードは、以下を含む最高クラスのフレームワークの上に立っています:

プラグインの価値は、これらの部品が AWS 用にどのように設定され接続されているかにあり、それらを置き換えることではありません。

生成されたすべてのコードは_あなたの_コードです。@aws/nx-plugin はビルド時のツールであり、ランタイムの依存関係ではありません — ジェネレーターが実行されると、プラグインはもはや関与しません。生成されたすべてのファイルを読み、コミットし、好きなように変更できます。

これは以下を意味します:

  • エスケープハッチは不要。 ジェネレーターが予期しなかったことを行う必要がある場合に、学習したり格闘したりする独自の設定サーフェスはありません。生成されたコードを直接編集します。自分で書いたコードを編集するのと同じ方法です。
  • 新しい抽象化レイヤーはなし。 ジェネレーターは、基盤となるフレームワーク用のプレーンで慣用的なコードを出力します。あなたと React、tRPC、FastAPI、CDK、その他のツールの間に座るラッパー API やマジックな間接層はありません — 見えるものが実行されるものです。
  • プラグインは依存関係ではない。 コードを生成して退きます。あなたのアプリケーションは実行時に @aws/nx-plugin をインポートしたり依存したりしないため、それによってブロックされることはなく、ロックインされることもありません。

生成されたコードで気に入らないものがあれば、自由に変更できます。ジェネレーターは、檻ではなく、スタートダッシュを提供します。

コードを所有することには通常コストが伴います:スキャフォールドの編集を始めた瞬間、上流で行われた修正や改善から切り離されます。それらを再び採用するということは、変更履歴を読み、再生成し、手作業で差分を調整することを意味します。マイグレーション は、@aws/nx-plugin がそれを防ぐために機能する方法です。

リリースには、以前のジェネレーターが生成したコードを、それ以降に行った改善に合わせることを目的としたマイグレーションが付属しています。バグを修正したり、セキュリティのデフォルトを強化したり、生成されたパターンを洗練したりすると、nx migrate を実行することで、その変更がコードに適用されます — 変更履歴でそれを見つけて自分で移植する代わりに。

実際には:

  • アップグレードは自動化され、再採用の作業ではない。 数ヶ月前に生成されたワークスペースは、プラグインから離れていくのではなく、プラグインと共に前進できます。
  • カスタマイズはパターンマッチングされ、上書きされない。 マイグレーションは、ファイルがジェネレーターが生成した形状にまだ一致しているかどうかをチェックします。安全に更新できる範囲を超えて分岐している場合は、コードをそのままにして、代わりに手動でのフォローアップを報告します。
  • 一部の変更はエージェントプロンプトとして到着。 適切な編集が構築したものに依存する場合、マイグレーションは、コードモッドではなく、AI コーディングエージェントが適用するプロンプトです。
  • アップグレードはオプトイン。 nx migrate を実行することを選択するまで、ワークスペース内の何も変更されません。

マイグレーションは、ギャップを閉じるのではなく狭めます:コードがどれだけ移動したかが、それらができることの量を決定し、一部のステップには依然としてあなたの手が必要です。

@aws/nx-plugin は、グローバル依存関係の数を最小限に抑えるよう努めています。開始するために必要なものは、呼び出すジェネレーターによって決まります。

例として、TypeScript ベースのジェネレーターは、Node がインストールされていることのみを必要とします。Python ベースのプロジェクトの場合、UV が唯一の要件です。

@aws/nx-plugin は、IDE の補完を介して開発者体験を簡素化するために型安全性を採用しており、型安全でない実装でのみ表面化するランタイムエラーも排除します。そのため、提供されるすべてのコンポーネントはデフォルトで型安全です。

型安全性はプロジェクトの境界を越えて流れます:ウェブサイトを API に接続すると、生成されたクライアントはバックエンドと型を共有するため、API コントラクトへの変更は、本番環境でのバグではなく、フロントエンドでのコンパイル時エラーとして表面化します。自信を持ってリファクタリングできます。