9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

React Router v7 × Cloudflare 無料かつ爆速でWebサイトをデプロイする

Last updated at Posted at 2025-10-29

はじめに

React Routerで作ったアプリをサクッと公開したいとき、Cloudflare Workersが便利です。公式のReact Router v7テンプレートが用意されていて、数分あれば環境構築からデプロイまで完了します。

この記事では、Cloudflare Workersの無料枠内で簡単にアプリを公開するまでの最小手順を紹介します。

前提条件

  • Cloudflareアカウントにログインできること
  • npmがインストールされていること

アカウントをまだ持っていない場合は以下から登録できます。
無料枠で使うだけなら、クレジットカード登録すら不要です。

プロジェクト作成

Cloudflare公式のReact Routerテンプレートを使ってプロジェクトを作成します。

npm create cloudflare@latest -- my-react-router-app --framework=react-router

コマンド実行後、my-react-router-appというディレクトリが生成され、初期構成が作成されます。

参考:

コード修正(おまけ)

テンプレートのままでも動作しますが、せっかくなのでトップページを少しだけおしゃれにしてみます。Tailwind CSS がデフォルトで組み込まれているので、スタイル付きのUIを簡単に作成できます。

以下のようにChatGPTへ指示を出してみました。

ReactとTailwind CSSで、welcome.tsxにシンプルでモダンなデモサイトのWelcomeページを作成してください。

生成されたコードを app/welcome/welcome.tsx に貼り付けます。

export function Welcome() {
  return (
    <div className="min-h-screen flex flex-col bg-gradient-to-b from-blue-50 to-white text-gray-800">
      <header className="w-full py-4 shadow-sm bg-white/70 backdrop-blur-sm">
        <div className="max-w-6xl mx-auto flex items-center justify-between px-4">
          <h1 className="text-xl font-semibold tracking-tight">DemoSite</h1>
          <nav className="flex gap-6 text-sm">
            <a href="#" className="hover:text-blue-600 transition-colors">Home</a>
            <a href="#" className="hover:text-blue-600 transition-colors">About</a>
            <a href="#" className="hover:text-blue-600 transition-colors">Contact</a>
          </nav>
        </div>
      </header>

      <main className="flex-grow flex items-center justify-center text-center px-4">
        <div className="max-w-2xl">
          <h2 className="text-4xl sm:text-5xl font-bold mb-4">Welcome to DemoSite</h2>
          <p className="text-gray-600 mb-8">
            React Router v7 と Tailwind CSS で構築されたデモページです。
          </p>
        </div>
      </main>

      <footer className="py-6 text-center text-sm text-gray-500 border-t">
        © 2025 DemoSite. All rights reserved.
      </footer>
    </div>
  );
}

ローカル実行

ローカル環境で動作を確認しておきます。次のコマンドで開発モードを起動します。

npm run dev

ブラウザで http://localhost:5173 にアクセスすると、React Routerで構築したトップページを確認できます。

Cloudflare へデプロイ

デプロイはこの1コマンドで完了します。

npm run deploy

初回のみ、ブラウザが開いてCloudflareアカウントとの連携許可を求められます。
「Allow」をクリックすれば認証完了です。

Allow Wrangler to make changes to your.png

Wranglerとは

package.jsonを見ると、npm run deploy は内部で次のスクリプトを実行していることがわかります。

npm run build && wrangler deploy

Wrangler(ラングラー)は、Cloudflare公式のCLIツールで、
Workersアプリのビルド、デプロイ、設定、環境変数の管理などを行うためのものです。今回のテンプレートにはあらかじめWranglerが同梱されているため、特別な設定をしなくてもそのまま利用できます

参考:

デプロイ確認

デプロイが完了したら、Cloudflareダッシュボードにアクセスし、
「Workers & Pages」を開きます。

Pasted Graphic 2.png

デプロイ済みプロジェクトが表示され、以下のようなURLが発行されます。

https://my-react-router-app.<アカウント名>.workers.dev

このURLをブラウザで開けば、React RouterサイトがCloudflare上で高速に表示されます。
workers.devドメインは一時的なURLですが、独自ドメインを無料で紐付けることも可能です。

Pasted Graphic 3.png

無料枠の制限

Cloudflare Workers 無料枠はいくつかの制限がありますが、個人ポートフォリオ、LP、デモアプリなどであれば十分活用できると思います。

項目 無料プランの上限
リクエスト数 1日あたり 10万件
CPU実行時間 1リクエストあたり 10ミリ秒以内

参考:

まとめ

  • React Router v7 テンプレートで簡単セットアップ
  • Cloudflare Workersへの無料デプロイ
  • npm run deploy だけで公開完了
  • 無料枠でも小規模サイトなら十分実用的

関連リンク

React Router ドキュメント:

Cloudflare ドキュメント:

以上、ありがとうございました!

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?