モノレポのセットアップ
一部のチームはモノレポアプローチ、または共有ライブラリとコンポーネントのデプロイプロセスを簡素化するために複数のパッケージやコンポーネントを含む単一のリポジトリを選択します。モノレポなしでは、各パッケージを個別にデプロイし、パッケージのバージョンとパッケージ間の依存関係を追跡し、バージョンの互換性を確保する必要があります。これはパッケージの数が増えるにつれて、指数関数的に複雑になる可能性があります。モノレポを使用すると、すべてのパッケージと依存関係が単一のリポジトリ内に含まれます。
Amplify Gen 2は、NxやYarn workspacesなどのモノレポツールを使用したフルスタックビルドのモノレポワークフローをサポートしています。Gen 2でビルドする場合、共有ワークスペースにamplify/フォルダを作成することをお勧めします。このガイドでは以下の例を使用します。
├── apps/│ ├── admin-dashboard/│ │ ├── next.config.mjs│ │ └── package.json│ └── marketing-site/│ ├── astro.config.mjs│ └── package.json├── packages/│ └── my-shared-backend/│ ├── amplify/│ │ ├── auth/│ │ │ └── resource.ts│ │ ├── data/│ │ │ └── resource.ts│ │ └── backend.ts│ |── package.json └── tsconfig.json└── package.jsonモノレポには若干異なるセットアップが必要です。3つのAmplifyアプリをデプロイします。
my-shared-backendadmin-dashboardmarketing-site
バックエンドアプリのデプロイ
最初のアプリmy-shared-backendは、バックエンドの変更を更新する唯一のアプリになります。他のアプリは、共有バックエンドを指すフロントエンドビルドのみを実行します。
-
まず、共有バックエンドAmplifyアプリをデプロイします。Gen 2では、バックエンドのみのCI/CDアプリをセットアップできるようになりました。Amplifyコンソールに移動して、新しいアプリを作成を選択します。
-
リポジトリを接続したら、モノレポプロジェクトを選択します。My app is a monorepoというチェックボックスをオンにして、amplifyバックエンドへのパスを入力します。
- ビルド設定は自動的に検出されます。保存してデプロイします。
フロントエンドアプリのデプロイ
- フロントエンドアプリの場合は、フロントエンドプロジェクトをAmplifyコンソールで個別に接続し、ビルドコマンドを次のように更新してください。
npx ampx generate outputs --app-id <your-backend-amplify-app-id> --branch main --out-dir app/src/main/res/raw- バックエンドアプリケーションの
App IDを探すには、Amplifyコンソールに移動して、backend-appを選択します。概要ページでは、App IDはプロジェクト名の下に表示されます。