クイックスタートガイド
このガイドでは、@aws/nx-plugin
をインストールしてAWS上でプロジェクトを迅速に構築する基本手順を説明します。
前提条件
始める前に以下のグローバル依存関係が必要です:
- Git
- Node >= 22(Nodeバージョン管理にはNVMの使用を推奨)
- インストール確認:
node --version
- インストール確認:
- PNPM >= 10(代替としてYarn >= 4、Bun >= 1、NPM >= 10も使用可)
- インストール確認:
pnpm --version
、yarn --version
、bun --version
またはnpm --version
- インストール確認:
- UV >= 0.5.29
- Python 3.12のインストール:
uv python install 3.12.0
- 確認コマンド:
uv python list --only-installed
- Python 3.12のインストール:
- デプロイ先AWSアカウント用に設定されたAWS Credentials
- VSCode利用者向けにNx Console VSCode Pluginのインストールを推奨
ステップ1: 新しいNxワークスペースの初期化
任意のパッケージマネージャーを使用してNxワークスペースを作成するには、次のコマンドを実行します:
npx create-nx-workspace@~20.6.3 my-project --pm=pnpm --preset=ts --ci=skip --formatter=prettier
npx create-nx-workspace@~20.6.3 my-project --pm=yarn --preset=ts --ci=skip --formatter=prettier
npx create-nx-workspace@~20.6.3 my-project --pm=npm --preset=ts --ci=skip --formatter=prettier
npx create-nx-workspace@~20.6.3 my-project --pm=bun --preset=ts --ci=skip --formatter=prettier
完了したらプロジェクトディレクトリに移動します:
cd my-project
ステップ2: AWS用Nxプラグインの追加
次のコマンドでプラグインをインストールします:
pnpm add -Dw @aws/nx-plugin
yarn add -D @aws/nx-plugin
npm install --legacy-peer-deps -D @aws/nx-plugin
bun install -D @aws/nx-plugin
ステップ3: ジェネレータを使用したプロジェクトのスキャフォールディング
このクイックスタートガイドでは、tRPC API、Reactウェブサイト、Cognito認証、CDKインフラストラクチャを追加します。構築するプロジェクトの種類に応じて、任意のジェネレータの組み合わせを選択してプロジェクトを迅速に立ち上げることができます。左側のナビゲーションバーにある__ガイド__から全オプションリストを確認できます。
tRPC APIの追加
- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)
"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#trpc-api
- 必須パラメータを入力
- apiName: demo-api
- クリック
Generate
pnpm nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
yarn nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
npx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
bunx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
変更されるファイルを確認するためにドライランを実行することもできます
pnpm nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
yarn nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
npx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
bunx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
これによりpackages/demo-api
フォルダ内にAPIが作成されます。
Reactウェブサイトの追加
- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)
"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#cloudscape-website
- 必須パラメータを入力
- name: demo-website
- クリック
Generate
pnpm nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
yarn nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
npx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
bunx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
変更されるファイルを確認するためにドライランを実行することもできます
pnpm nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
yarn nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
npx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
bunx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
これによりpackages/demo-website
に新しいReactウェブサイトがスキャフォールドされます。
Cognito認証の追加
- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)
"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#cloudscape-website#auth
- 必須パラメータを入力
- project: @my-project/demo-website
- cognitoDomain: my-demo
- クリック
Generate
pnpm nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
yarn nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
npx nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
bunx nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
変更されるファイルを確認するためにドライランを実行することもできます
pnpm nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
yarn nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
npx nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
bunx nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
これによりウェブサイトにCognito認証を追加するためのインフラストラクチャとReactコードが設定されます。
フロントエンドとバックエンドの接続
- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)
"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - api-connection
- 必須パラメータを入力
- sourceProject: @my-project/demo-website
- targetProject: @my-project/demo-api-backend
- クリック
Generate
pnpm nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
yarn nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
npx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
bunx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
変更されるファイルを確認するためにドライランを実行することもできます
pnpm nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend --dry-run
yarn nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend --dry-run
npx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend --dry-run
bunx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend --dry-run
これによりウェブサイトがtRPC APIを呼び出すために必要なプロバイダ設定が行われます。
CDKインフラストラクチャの追加
- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)
"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#infra
- 必須パラメータを入力
- name: infra
- クリック
Generate
pnpm nx g @aws/nx-plugin:ts#infra --name=infra
yarn nx g @aws/nx-plugin:ts#infra --name=infra
npx nx g @aws/nx-plugin:ts#infra --name=infra
bunx nx g @aws/nx-plugin:ts#infra --name=infra
変更されるファイルを確認するためにドライランを実行することもできます
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
yarn nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
npx nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
bunx nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
これによりAWSにインフラストラクチャをデプロイするためのCDKアプリが設定されます。
ステップ4: クラウドリソースの定義とAWSへのデプロイ
packages/infra/src/stacks/application-stack.ts
を開き、次のコードを追加します:
import * as cdk from 'aws-cdk-lib';import { DemoApi, DemoWebsite, UserIdentity } from ':my-project/common-constructs';import { Construct } from 'constructs';
export class ApplicationStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props);
const identity = new UserIdentity(this, 'identity'); const api = new DemoApi(this, 'api'); api.grantInvokeAccess(identity.identityPool.authenticatedRole);
new DemoWebsite(this, 'website'); }}
これがフルスタックアプリケーションをデプロイするために必要なCDKコードの全てです。
インフラストラクチャのビルドとデプロイ
次のコマンドを実行してプロジェクトをビルドします:
pnpm nx run-many --target build --all
yarn nx run-many --target build --all
npx nx run-many --target build --all
bunx nx run-many --target build --all
ステップ5: フロントエンドのローカル実行
-
runtime-config.json
ファイルの取得:Terminal window pnpm nx run @demo/demo-website:load:runtime-configTerminal window yarn nx run @demo/demo-website:load:runtime-configTerminal window npx nx run @demo/demo-website:load:runtime-configTerminal window bunx nx run @demo/demo-website:load:runtime-config -
ローカルウェブサイトサーバーの起動
Terminal window pnpm nx run @demo/demo-website:serveTerminal window yarn nx run @demo/demo-website:serveTerminal window npx nx run @demo/demo-website:serveTerminal window bunx nx run @demo/demo-website:serve
ウェブサイトはhttp://localhost:4200
で利用可能になります。
おめでとうございます!🎉 @aws/nx-plugin
を使用してフルスタックアプリケーションの構築とデプロイに成功しました!