モノレポ対応のNext.jsをAWS Amplifyでホスティングする

プログラミング

<script>” title=”<script>

<script>

1. 環境構築

Next.jsのセットアップ

Nxの公式ドキュメントを参考に環境構築をします。

Next.jsで新しいNxワークスペースを作成するには下記コマンドを実行します。

npx create-nx-workspace@latest --preset=next

workspaceはデフォルトの「org」アプリケーションの名前は「pro01」としました。

インストールが終わると、org > apps の中に先ほど作ったアプリケーション(pro01)が入っています。

アプリケーションの追加

下記コマンドで新しいアプリケーションを追加します。

nx g @nx/next:app アプリケーションの名前

例)nx g @nx/next:app pro02

問題なくアプリケーションが追加されました。

必要のない「pro01-e2e」と「pro02-e2e」は削除しておきます。

2. githubへアップロード

githubでレポジトリを準備し、先ほど作ったワークスペースをアップロードします。

git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/********/YOUR-REPOSITORY-NAME.git
git push -u origin main

3. AWS Amplify設定

AWSの管理画面からAmplifyを開きます。

Amplifyホスティングの「使用を開始する」をクリックします。

既存のコードからgithubを選択します。

githubの認証画面に飛ぶので認証し、該当のレポジトリを選択します。

ブランチを選択したら、「monorepoを接続しますか?フォルダを選択してください」にチェックをいれ、ルートからのアプリケーションまでのパスを書きます。

次にビルドの設定をします。

ここは自動でビルド設定が検出されるので、問題ない場合はそのまま受け入れます。

version: 1
applications:
  - frontend:
      phases:
        preBuild:
          commands:
            - npm ci
        build:
          commands:
            - npx nx build pro01
      artifacts:
        baseDirectory: dist/apps/pro01/.next
        files:
          - '**/*'
      cache:
        paths:
          - node_modules/**/*
      buildPath: /
    appRoot: apps/pro01

「次へ」を押すと確認画面が出てくるので、問題ないようなら「保存してデプロイ」をします。

デプロイが開始され、問題なくデプロイされました。

もう一つのアプリケーション(pro02)も同じように設定してください。