Next.js アプリケーションの開発は初期フェーズにすぎません。その後の重要なステップがデプロイです。このプロセスにより、インターネット上のユーザーがアプリケーションを利用できるようになります。アプリケーションのパフォーマンス、スケーラビリティ、信頼性を確保するには、効果的なデプロイ戦略が不可欠です。このガイドでは、Next.js アプリを正常にデプロイする手順について説明します。
Next.js は、React をベースに構築された React フレームワークです。プロダクション レディなウェブサイトを簡単に構築し、自動的に最適化できる機能が追加されています。
簡単に言うと、Next.js は React を使用して最新のアプリを構築するのに役立つフレームワークです。サーバー サポートがあり、最適化された画像とコンポーネントにより、ファイル転送を小規模に保ちながら、迅速に結果が得られます。
どちらも JavaScript を実行し、見た目も似ていますが、その機能や役割には大きな違いがあります。
特徴 | React(デフォルト) | Next.js |
SEO に最適 | 難しい場合がある | SEO に適している |
初期読み込みのパフォーマンス | 遅い | 速い |
データの取得 | 手動での実装が必要 | getServerSideProps と getStaticProps を組み込み |
ルーティング | ルーティング ライブラリ(React Router など)を使用する | ファイル システムベースのルーティング |
複雑さ | より単純に | すぐに利用できる構成 |
React(デフォルト)
Next.js
SEO に最適
難しい場合がある
SEO に適している
初期読み込みのパフォーマンス
遅い
速い
データの取得
手動での実装が必要
getServerSideProps と getStaticProps を組み込み
ルーティング
ルーティング ライブラリ(React Router など)を使用する
ファイル システムベースのルーティング
複雑さ
より単純に
すぐに利用できる構成
多くの React アプリでは、手順は一般的に同じですが、Next.js フレームワークを使用することをおすすめします。高いパフォーマンスと高度なレベルの要件に対応するため、このフレームワークは、アプリをより効率的にスケーリングし、React サイトの SEO を最適化するのに役立つ多くのコンポーネントを管理します。
すべての詳細とコード要件が揃うように、ターミナルを使用してテンプレートを生成する必要があります。
ターミナルを使用する:
npx create-next-app@latest
また、以下の構成も必要です。
必要なもの、必要な情報(サーバーまたはクライアント情報)、およびそれらの場所に関する指示が必要になります。構築されるビルドで期待できることは次のとおりです。
「これはパフォーマンスとスピードのためです。」
繰り返しになりますが、これはサーバーサイドとクライアントサイドのコンポーネントが必要になる部分が準備できているか確認するのに役立ちます。
コードを更新してレイアウトを整えましょう。
これに関する情報が必要になる場合があるため、こちらのドキュメントをご覧ください。
変更を行ったので、これで設定は完了です。レンダリングできるようになります。
検索エンジン最適化を最大限に活用するには、ウェブサイトの速度が重要です。JavaScript は、それ自体がレンダリングを遅くし、検索パフォーマンスに悪影響を及ぼす可能性があります。しかし、Next.js を使用することで、この問題を軽減できます。そのため、サイトでは読み込みの速さと効率的なデータ管理を優先しましょう。堅牢なセキュリティと最高品質のプロダクトを実現するには、プライバシーとアクセスを遵守し、テストデータを慎重に使用する必要があります。
クライアントサイド ルーティング
ほとんどの React アプリでは、react-router-dom などのライブラリを使用してナビゲーションを処理します。これはブラウザで行われるため、ホスティング サーバーがこれをサポートするように構成されている必要があります。通常は、すべてのページ リクエストをルートの index.html ファイルにリダイレクトし、React Router が処理を引き継いで正しいコンポーネントを表示できるようにします。
環境変数
アプリケーションでは、API キーやデータベース エンドポイントなど、開発環境と本番環境で異なる構成が必要になる可能性があります。ソースコードで機密情報が公開されないように、環境変数(.env ファイルなど)を使用してこれらを管理することが重要です。
バックエンド API 通信
React フロントエンドは UI を担当しますが、通常はバックエンド API から動的データを取得します。デプロイする際は、React アプリケーションが本番環境 API の正しい URL を認識していること、API が別のドメインでホストされている場合はクロスオリジン リソース シェアリング(CORS)を処理するように構成されていることを確認する必要があります。
Cloud Run は、コンテナベースのワークフローを使用して React アプリをデプロイする場合に適しており、これにより、最大限の一貫性と移植性が提供されます。クイックスタート ガイドを使用して、Cloud Run 上で Next.js React アプリのビルドとデプロイを開始しましょう。
正しく移行するには。データと転送の設定に関するすべての関連する詳細を実装していることを確認してください。
これらの手順を使用して、各ステージにプロジェクトに必要なすべての詳細情報が含まれるようにします。
# 必要な場合にのみ依存関係をインストールする FROM node:16-alpine AS deps # https://github.com/nodejs/docker-node/tree/b4117f933ba60658f2812f36b8 を確認する 117330a1dc25ab#alpine RUN apk add --no-cache libc6-compat WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci # ターボを使用する場合は、このセクションをコメント化解除してください。 # COPY turbo.json ./ # COPY .gitignore ./ # 環境変数を追加 ENV NEXT_TELEMETRY_DISABLED 1 # 再構築フックで、含めるものと含めないものを確認できます RUN npm run build ############### #### ステージ 2: 本番環境イメージ ### ############### FROM node:16-alpine AS runner WORKDIR /app # ビルド時の NEXT_PUBLIC_... 環境変数。 ENV NODE_ENV production # カスタム構成ファイルを使用している場合は、next.config.js をコピーするだけで済みます COPY --from=builder /app/next.config.js ./ COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./package.json # 詳しくは、https://cloud.google.com/run/docs をご覧ください /configuring/traffic ENV PORT 8080 EXPOSE 8080 CMD ["npm", "start"] |
# 必要な場合にのみ依存関係をインストールする
FROM node:16-alpine AS deps
# https://github.com/nodejs/docker-node/tree/b4117f933ba60658f2812f36b8 を確認する
117330a1dc25ab#alpine
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
# ターボを使用する場合は、このセクションをコメント化解除してください。
# COPY turbo.json ./
# COPY .gitignore ./
# 環境変数を追加
ENV NEXT_TELEMETRY_DISABLED 1
# 再構築フックで、含めるものと含めないものを確認できます
RUN npm run build
###############
#### ステージ 2: 本番環境イメージ ###
###############
FROM node:16-alpine AS runner
WORKDIR /app
# ビルド時の NEXT_PUBLIC_... 環境変数。
ENV NODE_ENV production
# カスタム構成ファイルを使用している場合は、next.config.js をコピーするだけで済みます
COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./package.json
# 詳しくは、https://cloud.google.com/run/docs をご覧ください
/configuring/traffic
ENV PORT 8080
EXPOSE 8080
CMD ["npm", "start"]
ここでデプロイする必要があります。Cloud Build などのプラットフォームを使用して、構成ファイルを接続します。
最後に、Cloud Run が適切かどうかを念頭に置いて、最終的にこれを使用して処理する方法を検討します。主なツールとコードを参照して、スムーズに実行できるようにしてください。
Firebase はデプロイ先としても最適です。この簡単な手順を覚えておきましょう。Firebase で Next.js を統合する準備は整いましたか?詳細なドキュメントに沿って操作を進めてください。
この画像またはドキュメントに必要な構成(SSL が必要)に従って、すべてが安全に機能するようにします。
CLI、Firebase のインストールと動作について説明します。
npm install -g firebase-tools
「Firebase Init - Hosting」に沿って操作します。
URL が書き換えられ、コマンドラインで正確であることを確認します。
「no」とともに使用します。これにより、すべてがデプロイされたときに問題が発生しないようにします。
ローカルテストが必要になります。これにはローカルホスト コードが必要です。
CLI を認証したら、このリポジトリに push します。
アップロード:
Cloud Run の一般的な開発のヒントの完全なリストについては、こちらのドキュメントをご覧ください。