Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

高度なセットアップ

最終更新 Markdown で表示Agent セットアップ

モノレポ

モノレポは、複数のアプリケーションを 1 つのリポジトリにまとめた構成です。次のような利点があります。

  • 依存関係の管理が簡単: pnpm workspacessyncpack などのツールを使い、すべての Worker と共有パッケージの依存関係を一箇所で管理できます。
  • コードの共有と再利用: 共有パッケージを作り、共通のロジック、型、ユーティリティを Worker 間で簡単に共有できます。
  • アトミックなコミット: 複数の Worker や共有ライブラリにまたがる変更をまとめてコミットできます。履歴が追いやすくなり、不整合のリスクも減ります。
  • ツールの統一: ビルド、テスト、リント、フォーマットの設定をすべてのプロジェクトに同じように適用できます(例: Turborepo でタスクをまとめ、共有設定を packages/ に置く)。Workers 全体でツールとコード品質を揃えられます。
  • リファクタリングが容易: 複数の Worker や共有パッケージにまたがるコードのリファクタリングは、1 つのリポジトリ内の方がはるかに簡単です。

Workers モノレポの例:

はじめ方

モノレポのワークフローを設定する手順は次のとおりです。

  1. Workers & Pages ダッシュボード で、プロジェクトに関連する Worker を探します。
  2. リポジトリ内の各 Worker に、モノレポを接続します。
  3. 各 Worker のルートディレクトリを設定し、wrangler.jsonc の場所と、ビルドおよびデプロイコマンドを実行する場所を指定します。
  4. 必要に応じて、Worker ごとに固有のビルドコマンドとデプロイコマンドを設定します。
  5. 必要に応じて、各 Worker に ビルドウォッチパス を設定し、監視するパスを指定します。

モノレポに新しいコミットがあると、変更が各 Worker のウォッチパスに含まれる場合、その Worker でビルドとデプロイが始まります。各ビルドの状態は、GitHub では チェックラン、GitLab では コミットステータス で確認できます。

ecommerce-monorepo の例では、product-serviceorder-servicenotification-service それぞれに Workers プロジェクトを作成します。

すべての Workers プロジェクトに、ecommerce-monorepo への Git 接続を追加します。Turborepo などのモノレポツールを使っている場合は、Worker ごとに異なるデプロイコマンドを設定できます。例: turbo deploy -F product-service

各 Worker のルートディレクトリは、Wrangler 設定ファイルがある場所に設定します。たとえば product-service なら、ルートディレクトリは /workers/product-service/ です。必要に応じて ビルドウォッチパス を追加し、ビルドを最適化できます。

ecommerce-monorepo に新しいコミットがあると、変更が各 Worker のウォッチパスに含まれる場合、その Worker に設定したコマンドでビルドとデプロイが始まります。

  • ecommerce-monorepo/
    • workers/
      • product-service/
        • src/
        • wrangler.jsonc
      • order-service/
        • src/
        • wrangler.jsonc
      • notification-service/
        • src/
        • wrangler.jsonc
    • packages/
      • schema/
    • README.md

Wrangler Environments

Workers Builds で Wrangler Environments を使う手順は次のとおりです。

  1. ダッシュボード上に環境用の Worker がまだない場合は、Wrangler でデプロイ して作成します。
  2. 環境用の Worker を探します。名前は通常 [name of Worker] - [environment name] です。
  3. 各環境の Worker にリポジトリを接続します。
  4. 各 Worker のビルド設定で、デプロイコマンドと本番以外のブランチ向けデプロイコマンド(該当する場合)に --env: <environment name> フラグを追加します。

リポジトリに新しいコミットがあると、関連する各 Worker でビルドとデプロイが始まります。

my-worker という Worker があり、wrangler.jsoncstagingproduction の 2 つの環境を設定するとします。まだデプロイしていない場合は、wrangler deploy --env stagingwrangler deploy --env production で各環境に my-worker をデプロイできます。

Cloudflare ダッシュボードに、my-worker-stagingmy-worker-production の 2 つの Worker が表示されます。Worker my-worker の Git リポジトリを、両方の環境 Worker に接続します。各環境 Worker のビルド設定で、デプロイコマンドをそれぞれ npx wrangler deploy --env stagingnpx wrangler deploy --env production に、本番以外のブランチ向けデプロイコマンドをそれぞれ npx wrangler versions upload --env stagingnpx wrangler versions upload --env production に変更します。

役に立ちましたか?