[{"data":1,"prerenderedAt":3215},["ShallowReactive",2],{"content-/cloudflare-pages-migration-guide":3,"all-pages-for-dir":3195,"related-/cloudflare-pages-migration-guide":3196,"og-image-/cloudflare-pages-migration-guide":3214},{"id":4,"title":5,"body":6,"category":3179,"concepts":3179,"description":3180,"extension":3181,"meta":3182,"navigation":319,"ogImage":3179,"path":3183,"project_name":3179,"published":3184,"publishedAt":3185,"seo":3186,"source":3179,"stem":3187,"tags":3188,"todo":3179,"unpublished":3184,"updatedAt":3193,"__hash__":3194},"pages/2025-11/2025-11-29/cloudflare-pages-migration-guide.md","既存Cloudflare PagesプロジェクトをDirect UploadからGit連携に移行する手順",{"type":7,"value":8,"toc":3136},"minimark",[9,13,17,30,35,73,76,82,141,144,147,161,163,166,170,177,182,203,213,219,223,237,243,250,254,257,263,273,275,279,283,339,343,405,409,412,418,420,424,430,434,437,443,446,450,455,479,483,509,514,519,533,538,555,557,561,565,589,593,598,625,630,635,639,644,785,790,853,858,864,868,873,946,951,969,974,993,997,1010,1015,1026,1030,1033,1048,1051,1053,1057,1060,1064,1087,1091,1094,1111,1114,1120,1124,1141,1145,1148,1154,1156,1160,1164,1238,1242,1257,1261,1353,1356,1367,1369,1373,1376,1391,1396,1402,1407,1413,1418,1424,1426,1429,1433,1437,1442,1448,1453,1456,1462,1466,1470,1476,1480,1483,1489,1493,1497,1503,1507,1509,1515,1518,1561,1565,1569,1575,1580,1587,1591,1603,1609,1614,1636,1641,1646,1652,1658,1660,1664,1667,1746,1748,1755,1766,1768,1772,1775,1821,1824,1859,1861,1865,1868,1923,1925,1929,1933,1939,1943,1952,1956,1959,1965,1969,1976,1978,1982,1986,1992,1996,2007,2011,2014,2054,2058,2061,2063,2067,2071,2077,2081,2084,2088,2091,2093,2097,2101,2107,2111,2121,2125,2127,2156,2160,2163,2169,2175,2177,2181,2185,2190,2194,2214,2218,2224,2230,2234,2243,2245,2249,2253,2256,2273,2277,2287,2290,2301,2304,2308,2314,2320,2328,2333,2380,2384,2389,2392,2398,2400,2404,2408,2411,2417,2420,2424,2433,2461,2465,2471,2477,2482,2504,2509,2611,2616,2678,2682,2685,2691,2694,2696,2699,2702,2705,2748,2751,2790,2793,2832,2834,2837,2840,2951,2954,3026,3028,3031,3034,3039,3047,3052,3060,3065,3073,3078,3086,3089,3092,3095,3125,3127,3132],[10,11,5],"h1",{"id":12},"既存cloudflare-pagesプロジェクトをdirect-uploadからgit連携に移行する手順",[14,15,16],"h2",{"id":16},"概要",[18,19,20,21,25,26,29],"p",{},"このガイドでは、",[22,23,24],"strong",{},"既にDirect Uploadで運用中のCloudflare Pagesプロジェクト","を、",[22,27,28],{},"GitHub連携による自動デプロイ","に移行する手順を説明します。",[31,32,34],"h3",{"id":33},"なぜこの移行が必要か","なぜこの移行が必要か？",[36,37,38,50,67],"ul",{},[39,40,41,44,45,49],"li",{},[22,42,43],{},"現状",": ",[46,47,48],"code",{},"wrangler pages deploy"," で手動デプロイ",[39,51,52,55,56],{},[22,53,54],{},"問題点",":\n",[36,57,58,61,64],{},[39,59,60],{},"GitHubにpushしても自動デプロイされない",[39,62,63],{},"Pull Requestのプレビューデプロイが使えない",[39,65,66],{},"デプロイの度にコマンド実行が必要",[39,68,69,72],{},[22,70,71],{},"解決策",": Git連携に移行してプッシュだけで自動デプロイ",[31,74,75],{"id":75},"移行のリスクと注意点",[18,77,78,79],{},"⚠️ ",[22,80,81],{},"重要な注意事項",[83,84,85,98,111,124],"ol",{},[39,86,87,90],{},[22,88,89],{},"プロジェクトの削除が必要",[36,91,92,95],{},[39,93,94],{},"Direct Upload → Git連携への直接変更は不可",[39,96,97],{},"一度プロジェクトを削除して作り直す必要がある",[39,99,100,103],{},[22,101,102],{},"カスタムドメインの再設定",[36,104,105,108],{},[39,106,107],{},"サブドメインやカスタムドメインを設定している場合は再設定が必要",[39,109,110],{},"DNS設定は保持されるが、Pages側の設定は削除される",[39,112,113,116],{},[22,114,115],{},"環境変数の再設定",[36,117,118,121],{},[39,119,120],{},"既存の環境変数は移行されない",[39,122,123],{},"事前にメモしておく必要がある",[39,125,126,129],{},[22,127,128],{},"デプロイメントURLの変化",[36,130,131,138],{},[39,132,133,134,137],{},"プロジェクト名が変わる場合、",[46,135,136],{},"xxx.pages.dev"," のURLも変わる",[39,139,140],{},"カスタムドメインを使用していれば影響なし",[142,143],"hr",{},[14,145,146],{"id":146},"前提条件",[36,148,149,152,155,158],{},[39,150,151],{},"✅ GitHubリポジトリが既に存在する",[39,153,154],{},"✅ リポジトリに最新のコードがpushされている",[39,156,157],{},"✅ Cloudflare Pagesプロジェクトが稼働中",[39,159,160],{},"✅ Cloudflareアカウントへのアクセス権限がある",[142,162],{},[14,164,165],{"id":165},"移行手順",[31,167,169],{"id":168},"ステップ0-現在の設定を記録重要","ステップ0: 現在の設定を記録（重要！）",[18,171,172,173,176],{},"移行前に、",[22,174,175],{},"必ず現在の設定をメモしておきます","。",[178,179,181],"h4",{"id":180},"_0-1-カスタムドメインサブドメインの確認","0-1. カスタムドメイン・サブドメインの確認",[83,183,184,194,200],{},[39,185,186,189,190,193],{},[22,187,188],{},"Cloudflare Dashboard"," > ",[22,191,192],{},"Workers & Pages"," > プロジェクトを選択",[39,195,196,199],{},[22,197,198],{},"Custom domains"," タブをクリック",[39,201,202],{},"設定されているドメインをすべてメモ：",[204,205,210],"pre",{"className":206,"code":208,"language":209},[207],"language-text","例:\n- log.eurekapu.com\n","text",[46,211,208],{"__ignoreMap":212},"",[18,214,215],{},[216,217],"img",{"alt":212,"src":218},"/2025-11/2025-11-29/image.png",[178,220,222],{"id":221},"_0-2-環境変数の確認","0-2. 環境変数の確認",[83,224,225,234],{},[39,226,227,189,230,233],{},[22,228,229],{},"Settings",[22,231,232],{},"Environment variables"," をクリック",[39,235,236],{},"すべての環境変数をメモ：",[204,238,241],{"className":239,"code":240,"language":209},[207],"例:\nNODE_VERSION = 22.6.0\nPNPM_VERSION = 10.10.0\nNUXT_PUBLIC_API_BASE = https://api.example.com\nRESEND_API_KEY = re_xxxxxxxxxxxx\n",[46,242,240],{"__ignoreMap":212},[18,244,245,246],{},"今回はなし\n",[216,247],{"alt":248,"src":249},"alt text","/2025-11/2025-11-29/image-1.png",[178,251,253],{"id":252},"_0-3-プロジェクト名の確認","0-3. プロジェクト名の確認",[18,255,256],{},"現在のプロジェクト名をメモ：",[204,258,261],{"className":259,"code":260,"language":209},[207],"例:\nプロジェクト名: mdx-playground-web\nデプロイURL: https://mdx-playground-web.pages.dev\n",[46,262,260],{"__ignoreMap":212},[18,264,265,268,269,272],{},[22,266,267],{},"重要:"," 同じプロジェクト名で作り直せば、",[46,270,271],{},".pages.dev"," のURLは変わりません。",[142,274],{},[31,276,278],{"id":277},"ステップ1-githubリポジトリの準備","ステップ1: GitHubリポジトリの準備",[178,280,282],{"id":281},"_1-1-リポジトリの確認","1-1. リポジトリの確認",[204,284,288],{"className":285,"code":286,"language":287,"meta":212,"style":212},"language-bash shiki shiki-themes vitesse-light vitesse-light","# 現在のリモートリポジトリを確認\ngit remote -v\n\n# 出力例:\n# origin  https://github.com/your-username/your-repo.git (fetch)\n# origin  https://github.com/your-username/your-repo.git (push)\n","bash",[46,289,290,299,314,321,327,333],{"__ignoreMap":212},[291,292,295],"span",{"class":293,"line":294},"line",1,[291,296,298],{"class":297},"sxvE3","# 現在のリモートリポジトリを確認\n",[291,300,302,306,310],{"class":293,"line":301},2,[291,303,305],{"class":304},"senZ8","git",[291,307,309],{"class":308},"sdGka"," remote",[291,311,313],{"class":312},"snbK4"," -v\n",[291,315,317],{"class":293,"line":316},3,[291,318,320],{"emptyLinePlaceholder":319},true,"\n",[291,322,324],{"class":293,"line":323},4,[291,325,326],{"class":297},"# 出力例:\n",[291,328,330],{"class":293,"line":329},5,[291,331,332],{"class":297},"# origin  https://github.com/your-username/your-repo.git (fetch)\n",[291,334,336],{"class":293,"line":335},6,[291,337,338],{"class":297},"# origin  https://github.com/your-username/your-repo.git (push)\n",[178,340,342],{"id":341},"_1-2-最新コードをプッシュ","1-2. 最新コードをプッシュ",[204,344,346],{"className":285,"code":345,"language":287,"meta":212,"style":212},"# すべての変更をコミット\ngit add .\ngit commit -m \"Prepare for Cloudflare Pages Git integration\"\n\n# mainブランチにプッシュ\ngit push origin main\n",[46,347,348,353,363,383,387,392],{"__ignoreMap":212},[291,349,350],{"class":293,"line":294},[291,351,352],{"class":297},"# すべての変更をコミット\n",[291,354,355,357,360],{"class":293,"line":301},[291,356,305],{"class":304},[291,358,359],{"class":308}," add",[291,361,362],{"class":308}," .\n",[291,364,365,367,370,373,377,380],{"class":293,"line":316},[291,366,305],{"class":304},[291,368,369],{"class":308}," commit",[291,371,372],{"class":312}," -m",[291,374,376],{"class":375},"sMJiu"," \"",[291,378,379],{"class":308},"Prepare for Cloudflare Pages Git integration",[291,381,382],{"class":375},"\"\n",[291,384,385],{"class":293,"line":323},[291,386,320],{"emptyLinePlaceholder":319},[291,388,389],{"class":293,"line":329},[291,390,391],{"class":297},"# mainブランチにプッシュ\n",[291,393,394,396,399,402],{"class":293,"line":335},[291,395,305],{"class":304},[291,397,398],{"class":308}," push",[291,400,401],{"class":308}," origin",[291,403,404],{"class":308}," main\n",[178,406,408],{"id":407},"_1-3-githubリポジトリの確認","1-3. GitHubリポジトリの確認",[18,410,411],{},"GitHubにアクセスして、最新のコードが反映されているか確認：",[204,413,416],{"className":414,"code":415,"language":209},[207],"https://github.com/your-username/your-repo\n",[46,417,415],{"__ignoreMap":212},[142,419],{},[31,421,423],{"id":422},"ステップ2-既存cloudflare-pagesプロジェクトの削除","ステップ2: 既存Cloudflare Pagesプロジェクトの削除",[18,425,78,426,429],{},[22,427,428],{},"注意:"," この操作は取り消せません。必ずステップ0で設定を記録してから実行してください。",[178,431,433],{"id":432},"_2-1-現在のデプロイメントの確認","2-1. 現在のデプロイメントの確認",[18,435,436],{},"削除前に、現在のサイトが正常に動作していることを確認：",[204,438,441],{"className":439,"code":440,"language":209},[207],"https://mdx-playground-web.pages.dev/\n",[46,442,440],{"__ignoreMap":212},[18,444,445],{},"スクリーンショットを撮っておくと安心です。",[178,447,449],{"id":448},"_2-2-カスタムドメインの削除必須","2-2. カスタムドメインの削除（必須）",[18,451,78,452],{},[22,453,454],{},"カスタムドメインが設定されている場合、先に削除しないとプロジェクトを削除できません。",[83,456,457,462,476],{},[39,458,459,461],{},[22,460,198],{}," タブを開く",[39,463,464,465,468,469,472,473,233],{},"設定されているドメイン（例: ",[46,466,467],{},"log.eurekapu.com","）の ",[22,470,471],{},"×"," または ",[22,474,475],{},"Remove",[39,477,478],{},"すべてのカスタムドメインを削除",[178,480,482],{"id":481},"_2-3-プロジェクトの削除","2-3. プロジェクトの削除",[83,484,485,491,494,501,504],{},[39,486,487,189,489],{},[22,488,188],{},[22,490,192],{},[39,492,493],{},"削除するプロジェクトを選択",[39,495,496,189,498],{},[22,497,229],{},[22,499,500],{},"Delete project",[39,502,503],{},"プロジェクト名を入力して確認",[39,505,506,233],{},[22,507,508],{},"Delete",[18,510,511],{},[216,512],{"alt":248,"src":513},"/2025-11/2025-11-29/image-2.png",[18,515,516],{},[22,517,518],{},"削除されるもの:",[36,520,521,524,527,530],{},[39,522,523],{},"✅ デプロイメント履歴",[39,525,526],{},"✅ 環境変数",[39,528,529],{},"✅ カスタムドメイン設定（DNS設定は保持）",[39,531,532],{},"✅ ビルド設定",[18,534,535],{},[22,536,537],{},"削除されないもの:",[36,539,540,543,546],{},[39,541,542],{},"✅ GitHubリポジトリ",[39,544,545],{},"✅ DNSレコード（Cloudflare DNS使用時）",[39,547,548,549,552],{},"✅ ドメイン自体",[550,551],"br",{},[216,553],{"alt":248,"src":554},"/2025-11/2025-11-29/image-3.png",[142,556],{},[31,558,560],{"id":559},"ステップ3-git連携で新規プロジェクト作成","ステップ3: Git連携で新規プロジェクト作成",[178,562,564],{"id":563},"_3-1-新規プロジェクト作成の開始","3-1. 新規プロジェクト作成の開始",[83,566,567,573,578,584],{},[39,568,569,189,571],{},[22,570,188],{},[22,572,192],{},[39,574,575,233],{},[22,576,577],{},"Create application",[39,579,580,583],{},[22,581,582],{},"Pages"," タブを選択",[39,585,586,233],{},[22,587,588],{},"Connect to Git",[178,590,592],{"id":591},"_3-2-githubアカウントの接続","3-2. GitHubアカウントの接続",[18,594,595],{},[22,596,597],{},"初回の場合:",[83,599,600,605,608],{},[39,601,602,233],{},[22,603,604],{},"Connect GitHub",[39,606,607],{},"Cloudflareに必要な権限を許可",[39,609,610,611],{},"リポジトリアクセスの選択：\n",[36,612,613,619],{},[39,614,615,618],{},[22,616,617],{},"All repositories","（すべてのリポジトリにアクセス）",[39,620,621,624],{},[22,622,623],{},"Only select repositories","（特定のリポジトリのみ）← 推奨",[18,626,627],{},[22,628,629],{},"既に接続済みの場合:",[83,631,632],{},[39,633,634],{},"リポジトリ一覧から対象のリポジトリを選択",[178,636,638],{"id":637},"_3-3-ビルド設定","3-3. ビルド設定",[18,640,641,643],{},[22,642,267],{}," ここで正しく設定しないとビルドが失敗します。",[645,646,647,663],"table",{},[648,649,650],"thead",{},[651,652,653,657,660],"tr",{},[654,655,656],"th",{},"設定項目",[654,658,659],{},"値",[654,661,662],{},"説明",[664,665,666,682,700,715,737,752,770],"tbody",{},[651,667,668,674,679],{},[669,670,671],"td",{},[22,672,673],{},"Project name",[669,675,676],{},[46,677,678],{},"your-project",[669,680,681],{},"ステップ0-3でメモした名前を使用（URLを維持したい場合）",[651,683,684,689,697],{},[669,685,686],{},[22,687,688],{},"Production branch",[669,690,691,472,694],{},[46,692,693],{},"main",[46,695,696],{},"master",[669,698,699],{},"本番環境にデプロイするブランチ",[651,701,702,707,712],{},[669,703,704],{},[22,705,706],{},"Framework preset",[669,708,709],{},[46,710,711],{},"Nuxt.js",[669,713,714],{},"フレームワークを選択（自動検出される場合もある）",[651,716,717,722,727],{},[669,718,719],{},[22,720,721],{},"Build command",[669,723,724],{},[46,725,726],{},"pnpm install && pnpm generate",[669,728,78,729,732,733,736],{},[46,730,731],{},"npm run build"," ではなく ",[46,734,735],{},"pnpm generate","！",[651,738,739,744,749],{},[669,740,741],{},[22,742,743],{},"Deploy command",[669,745,746],{},[46,747,748],{},"true",[669,750,751],{},"⚠️ Git連携では wrangler 不要！",[651,753,754,759,764],{},[669,755,756],{},[22,757,758],{},"Build output directory",[669,760,761],{},[46,762,763],{},"dist",[669,765,766,769],{},[46,767,768],{},"nuxt generate"," の出力先（自動設定）",[651,771,772,777,782],{},[669,773,774],{},[22,775,776],{},"Root directory (optional)",[669,778,779],{},[46,780,781],{},"apps/web",[669,783,784],{},"モノレポの場合は必須（パスと表示される場合もある）",[18,786,78,787],{},[22,788,789],{},"重要な注意事項:",[83,791,792,817],{},[39,793,794,800],{},[22,795,796,797,799],{},"デプロイコマンドは ",[46,798,748],{}," を推奨",[36,801,802,809,812],{},[39,803,804,805,808],{},"Git連携ではCloudflareがビルド成果物を",[22,806,807],{},"自動デプロイ","する",[39,810,811],{},"wranglerを使うと権限エラーやプロジェクト名不一致などの問題が発生する",[39,813,814,816],{},[46,815,748],{}," は「何もしないで成功」を意味するシェルコマンド",[39,818,819,824],{},[22,820,821,822],{},"ビルドコマンドは必ず ",[46,823,735],{},[36,825,826,839,845,850],{},[39,827,828,830,831,732,834,838],{},[46,829,731],{}," や ",[46,832,833],{},"pnpm build",[22,835,836],{},[46,837,735],{}," を使用",[39,840,841,844],{},[46,842,843],{},"nuxt build"," はSSRモードでビルドし、D1データベースが必要",[39,846,847,849],{},[46,848,768],{}," は静的サイト生成で、すべてのコンテンツを事前レンダリング",[39,851,852],{},"間違えると「Hello world」しか表示されない（問題11参照）",[18,854,855],{},[22,856,857],{},"モノレポの場合の注意:",[204,859,862],{"className":860,"code":861,"language":209},[207],"例: mdx-playground プロジェクトの場合\nRoot directory (パス): apps/web\nBuild command: pnpm install && pnpm generate\nDeploy command: true\nBuild output directory: dist\n",[46,863,861],{"__ignoreMap":212},[178,865,867],{"id":866},"_3-4-環境変数の設定","3-4. 環境変数の設定",[18,869,870,872],{},[22,871,232],{}," セクションで、必須の環境変数を設定：",[645,874,875,891],{},[648,876,877],{},[651,878,879,882,885,888],{},[654,880,881],{},"Variable name",[654,883,884],{},"Value",[654,886,887],{},"Environment",[654,889,890],{},"必須",[664,892,893,912,929],{},[651,894,895,900,905,908],{},[669,896,897],{},[46,898,899],{},"NODE_VERSION",[669,901,902],{},[46,903,904],{},"22",[669,906,907],{},"Production, Preview",[669,909,78,910],{},[22,911,890],{},[651,913,914,919,924,926],{},[669,915,916],{},[46,917,918],{},"NUXT_PUBLIC_SITE_URL",[669,920,921],{},[46,922,923],{},"https://your-domain.com",[669,925,907],{},[669,927,928],{},"推奨",[651,930,931,936,941,943],{},[669,932,933],{},[46,934,935],{},"PNPM_VERSION",[669,937,938],{},[46,939,940],{},"10.10.0",[669,942,907],{},[669,944,945],{},"任意",[18,947,78,948],{},[22,949,950],{},"NODE_VERSION=22 は必須:",[36,952,953,956,963],{},[39,954,955],{},"Cloudflareのデフォルトは Node.js 18",[39,957,958,959,962],{},"最新の Nuxt/Nuxt Content が依存する ",[46,960,961],{},"oxc-parser"," は Node.js 20.19.0 以上を要求",[39,964,965,968],{},[46,966,967],{},"NODE_VERSION=22"," を設定しないとビルドが失敗する",[18,970,971],{},[22,972,973],{},"環境の選択:",[36,975,976,982,988],{},[39,977,978,981],{},[22,979,980],{},"Production",": 本番環境のみ",[39,983,984,987],{},[22,985,986],{},"Preview",": プレビュー環境のみ",[39,989,990,992],{},[22,991,907],{},": 両方",[178,994,996],{"id":995},"_3-5-デプロイの開始","3-5. デプロイの開始",[83,998,999,1004,1007],{},[39,1000,1001,233],{},[22,1002,1003],{},"Save and Deploy",[39,1005,1006],{},"初回ビルドが開始される",[39,1008,1009],{},"ビルドログをリアルタイムで確認",[18,1011,1012],{},[22,1013,1014],{},"ビルドログの確認方法:",[36,1016,1017,1020],{},[39,1018,1019],{},"進行中のデプロイメントをクリック",[39,1021,1022,1025],{},[22,1023,1024],{},"View build log"," でログを確認",[178,1027,1029],{"id":1028},"_3-6-デプロイの成功確認","3-6. デプロイの成功確認",[18,1031,1032],{},"ビルドが成功したら、以下を確認：",[204,1034,1036],{"className":285,"code":1035,"language":287,"meta":212,"style":212},"# 新しいデプロイメントURL\nhttps://your-project.pages.dev\n",[46,1037,1038,1043],{"__ignoreMap":212},[291,1039,1040],{"class":293,"line":294},[291,1041,1042],{"class":297},"# 新しいデプロイメントURL\n",[291,1044,1045],{"class":293,"line":301},[291,1046,1047],{"class":304},"https://your-project.pages.dev\n",[18,1049,1050],{},"サイトが正常に表示されるか確認してください。",[142,1052],{},[31,1054,1056],{"id":1055},"ステップ4-カスタムドメインの再設定","ステップ4: カスタムドメインの再設定",[18,1058,1059],{},"ステップ0-1でメモしたカスタムドメインを再設定します。",[178,1061,1063],{"id":1062},"_4-1-カスタムドメインの追加","4-1. カスタムドメインの追加",[83,1065,1066,1071,1076,1082],{},[39,1067,1068,1069,461],{},"プロジェクトの ",[22,1070,198],{},[39,1072,1073,233],{},[22,1074,1075],{},"Set up a custom domain",[39,1077,1078,1079,1081],{},"ドメインを入力（例: ",[46,1080,467],{},"）",[39,1083,1084,233],{},[22,1085,1086],{},"Continue",[178,1088,1090],{"id":1089},"_4-2-dns設定の確認","4-2. DNS設定の確認",[18,1092,1093],{},"Cloudflare DNSを使用している場合：",[36,1095,1096,1102],{},[39,1097,1098,1101],{},[22,1099,1100],{},"自動設定",": CNAMEレコードが自動で追加される",[39,1103,1104,1105,1107,1108],{},"確認：",[46,1106,467],{}," → ",[46,1109,1110],{},"your-project.pages.dev",[18,1112,1113],{},"外部DNSを使用している場合：",[204,1115,1118],{"className":1116,"code":1117,"language":209},[207],"タイプ: CNAME\n名前: log (サブドメイン部分)\n値: your-project.pages.dev\n",[46,1119,1117],{"__ignoreMap":212},[178,1121,1123],{"id":1122},"_4-3-ssl証明書の発行待ち","4-3. SSL証明書の発行待ち",[36,1125,1126,1129,1132],{},[39,1127,1128],{},"証明書発行には最大24時間かかる場合がある",[39,1130,1131],{},"通常は数分で完了",[39,1133,1134,44,1137,1140],{},[22,1135,1136],{},"Status",[46,1138,1139],{},"Active"," になれば完了",[178,1142,1144],{"id":1143},"_4-4-複数ドメインの設定","4-4. 複数ドメインの設定",[18,1146,1147],{},"ステップ0-1でメモした他のドメインも同様に追加：",[204,1149,1152],{"className":1150,"code":1151,"language":209},[207],"例:\n- log.eurekapu.com → Active\n- www.log.eurekapu.com → Active\n- tax.eurekapu.com → Active\n",[46,1153,1151],{"__ignoreMap":212},[142,1155],{},[31,1157,1159],{"id":1158},"ステップ5-自動デプロイの確認","ステップ5: 自動デプロイの確認",[178,1161,1163],{"id":1162},"_5-1-テストコミット","5-1. テストコミット",[204,1165,1167],{"className":285,"code":1166,"language":287,"meta":212,"style":212},"# 簡単な変更を加える\necho \"# Test\" >> README.md\n\n# コミット & プッシュ\ngit add .\ngit commit -m \"Test automatic deployment\"\ngit push origin main\n",[46,1168,1169,1174,1195,1199,1204,1212,1227],{"__ignoreMap":212},[291,1170,1171],{"class":293,"line":294},[291,1172,1173],{"class":297},"# 簡単な変更を加える\n",[291,1175,1176,1180,1182,1185,1188,1192],{"class":293,"line":301},[291,1177,1179],{"class":1178},"sz8Xr","echo",[291,1181,376],{"class":375},[291,1183,1184],{"class":308},"# Test",[291,1186,1187],{"class":375},"\"",[291,1189,1191],{"class":1190},"stQ0i"," >>",[291,1193,1194],{"class":308}," README.md\n",[291,1196,1197],{"class":293,"line":316},[291,1198,320],{"emptyLinePlaceholder":319},[291,1200,1201],{"class":293,"line":323},[291,1202,1203],{"class":297},"# コミット & プッシュ\n",[291,1205,1206,1208,1210],{"class":293,"line":329},[291,1207,305],{"class":304},[291,1209,359],{"class":308},[291,1211,362],{"class":308},[291,1213,1214,1216,1218,1220,1222,1225],{"class":293,"line":335},[291,1215,305],{"class":304},[291,1217,369],{"class":308},[291,1219,372],{"class":312},[291,1221,376],{"class":375},[291,1223,1224],{"class":308},"Test automatic deployment",[291,1226,382],{"class":375},[291,1228,1230,1232,1234,1236],{"class":293,"line":1229},7,[291,1231,305],{"class":304},[291,1233,398],{"class":308},[291,1235,401],{"class":308},[291,1237,404],{"class":308},[178,1239,1241],{"id":1240},"_5-2-自動ビルドの確認","5-2. 自動ビルドの確認",[83,1243,1244,1251,1254],{},[39,1245,1246,1247,1250],{},"Cloudflare Dashboard > プロジェクト > ",[22,1248,1249],{},"Deployments"," タブ",[39,1252,1253],{},"新しいデプロイメントが自動で開始されることを確認",[39,1255,1256],{},"ビルドログで成功を確認",[178,1258,1260],{"id":1259},"_5-3-プレビューデプロイのテスト","5-3. プレビューデプロイのテスト",[204,1262,1264],{"className":285,"code":1263,"language":287,"meta":212,"style":212},"# 新しいブランチを作成\ngit checkout -b feature/test-preview\n\n# 変更を加える\necho \"# Preview Test\" >> README.md\n\n# プッシュ\ngit add .\ngit commit -m \"Test preview deployment\"\ngit push origin feature/test-preview\n",[46,1265,1266,1271,1284,1288,1293,1308,1312,1317,1326,1342],{"__ignoreMap":212},[291,1267,1268],{"class":293,"line":294},[291,1269,1270],{"class":297},"# 新しいブランチを作成\n",[291,1272,1273,1275,1278,1281],{"class":293,"line":301},[291,1274,305],{"class":304},[291,1276,1277],{"class":308}," checkout",[291,1279,1280],{"class":312}," -b",[291,1282,1283],{"class":308}," feature/test-preview\n",[291,1285,1286],{"class":293,"line":316},[291,1287,320],{"emptyLinePlaceholder":319},[291,1289,1290],{"class":293,"line":323},[291,1291,1292],{"class":297},"# 変更を加える\n",[291,1294,1295,1297,1299,1302,1304,1306],{"class":293,"line":329},[291,1296,1179],{"class":1178},[291,1298,376],{"class":375},[291,1300,1301],{"class":308},"# Preview Test",[291,1303,1187],{"class":375},[291,1305,1191],{"class":1190},[291,1307,1194],{"class":308},[291,1309,1310],{"class":293,"line":335},[291,1311,320],{"emptyLinePlaceholder":319},[291,1313,1314],{"class":293,"line":1229},[291,1315,1316],{"class":297},"# プッシュ\n",[291,1318,1320,1322,1324],{"class":293,"line":1319},8,[291,1321,305],{"class":304},[291,1323,359],{"class":308},[291,1325,362],{"class":308},[291,1327,1329,1331,1333,1335,1337,1340],{"class":293,"line":1328},9,[291,1330,305],{"class":304},[291,1332,369],{"class":308},[291,1334,372],{"class":312},[291,1336,376],{"class":375},[291,1338,1339],{"class":308},"Test preview deployment",[291,1341,382],{"class":375},[291,1343,1345,1347,1349,1351],{"class":293,"line":1344},10,[291,1346,305],{"class":304},[291,1348,398],{"class":308},[291,1350,401],{"class":308},[291,1352,1283],{"class":308},[18,1354,1355],{},"GitHub上でPull Requestを作成すると：",[36,1357,1358,1364],{},[39,1359,1360,1361,1081],{},"✅ プレビューURLが自動生成（例: ",[46,1362,1363],{},"https://abc123.your-project.pages.dev",[39,1365,1366],{},"✅ PRコメントにURLとビルドステータスが投稿される",[142,1368],{},[31,1370,1372],{"id":1371},"ステップ6-ブランチ制御の設定オプション","ステップ6: ブランチ制御の設定（オプション）",[18,1374,1375],{},"特定のブランチのみ自動デプロイしたい場合：",[83,1377,1378,1385],{},[39,1379,1380,189,1382],{},[22,1381,229],{},[22,1383,1384],{},"Builds & deployments",[39,1386,1387,1390],{},[22,1388,1389],{},"Branch deployment controls"," セクション",[18,1392,1393],{},[22,1394,1395],{},"設定例1: mainブランチのみ本番デプロイ",[204,1397,1400],{"className":1398,"code":1399,"language":209},[207],"Production branch: main\nPreview deployments: None\n",[46,1401,1399],{"__ignoreMap":212},[18,1403,1404],{},[22,1405,1406],{},"設定例2: すべてのブランチでプレビュー作成",[204,1408,1411],{"className":1409,"code":1410,"language":209},[207],"Production branch: main\nPreview deployments: All branches\n",[46,1412,1410],{"__ignoreMap":212},[18,1414,1415],{},[22,1416,1417],{},"設定例3: 特定のブランチパターンのみ",[204,1419,1422],{"className":1420,"code":1421,"language":209},[207],"Production branch: main\nPreview deployments: Custom branches\nBranch name pattern: feature/*\n",[46,1423,1421],{"__ignoreMap":212},[142,1425],{},[14,1427,1428],{"id":1428},"トラブルシューティング",[31,1430,1432],{"id":1431},"問題1-ビルドが失敗する","問題1: ビルドが失敗する",[178,1434,1436],{"id":1435},"原因1-root-directoryが未設定モノレポ","原因1: Root directoryが未設定（モノレポ）",[18,1438,1439],{},[22,1440,1441],{},"エラー例:",[204,1443,1446],{"className":1444,"code":1445,"language":209},[207],"Could not find package.json\n",[46,1447,1445],{"__ignoreMap":212},[18,1449,1450],{},[22,1451,1452],{},"解決策:",[18,1454,1455],{},"Settings > Builds & deployments > Build configurations > Root directory を設定：",[204,1457,1460],{"className":1458,"code":1459,"language":209},[207],"apps/web\n",[46,1461,1459],{"__ignoreMap":212},[178,1463,1465],{"id":1464},"原因2-nodejsバージョンが古い","原因2: Node.jsバージョンが古い",[18,1467,1468],{},[22,1469,1441],{},[204,1471,1474],{"className":1472,"code":1473,"language":209},[207],"Node version 18.x is not supported\n",[46,1475,1473],{"__ignoreMap":212},[18,1477,1478],{},[22,1479,1452],{},[18,1481,1482],{},"環境変数に追加：",[204,1484,1487],{"className":1485,"code":1486,"language":209},[207],"NODE_VERSION = 22.6.0\n",[46,1488,1486],{"__ignoreMap":212},[178,1490,1492],{"id":1491},"原因3-pnpmが認識されない","原因3: pnpmが認識されない",[18,1494,1495],{},[22,1496,1441],{},[204,1498,1501],{"className":1499,"code":1500,"language":209},[207],"pnpm: command not found\n",[46,1502,1500],{"__ignoreMap":212},[18,1504,1505],{},[22,1506,1452],{},[18,1508,1482],{},[204,1510,1513],{"className":1511,"code":1512,"language":209},[207],"PNPM_VERSION = 10.10.0\n",[46,1514,1512],{"__ignoreMap":212},[18,1516,1517],{},"ビルドコマンドを修正：",[204,1519,1521],{"className":285,"code":1520,"language":287,"meta":212,"style":212},"# 悪い例\npnpm build\n\n# 良い例\npnpm install && pnpm build\n",[46,1522,1523,1528,1536,1540,1545],{"__ignoreMap":212},[291,1524,1525],{"class":293,"line":294},[291,1526,1527],{"class":297},"# 悪い例\n",[291,1529,1530,1533],{"class":293,"line":301},[291,1531,1532],{"class":304},"pnpm",[291,1534,1535],{"class":308}," build\n",[291,1537,1538],{"class":293,"line":316},[291,1539,320],{"emptyLinePlaceholder":319},[291,1541,1542],{"class":293,"line":323},[291,1543,1544],{"class":297},"# 良い例\n",[291,1546,1547,1549,1552,1556,1559],{"class":293,"line":329},[291,1548,1532],{"class":304},[291,1550,1551],{"class":308}," install",[291,1553,1555],{"class":1554},"shFtX"," &&",[291,1557,1558],{"class":304}," pnpm",[291,1560,1535],{"class":308},[178,1562,1564],{"id":1563},"原因4-ネイティブバインディングが見つからないwindows-linux","原因4: ネイティブバインディングが見つからない（Windows → Linux）",[18,1566,1567],{},[22,1568,1441],{},[204,1570,1573],{"className":1571,"code":1572,"language":209},[207],"[error] Cannot find native binding.\nCannot find module '@oxc-parser/binding-linux-x64-gnu'\n",[46,1574,1572],{"__ignoreMap":212},[18,1576,1577],{},[22,1578,1579],{},"問題の原因:",[18,1581,1582,1583,1586],{},"ローカル環境（Windows）で生成した ",[46,1584,1585],{},"pnpm-lock.yaml"," にはWindows用のネイティブバインディングしか含まれていないため、Cloudflareのビルド環境（Linux）で失敗する。",[18,1588,1589],{},[22,1590,1452],{},[83,1592,1593],{},[39,1594,1595,1598,1599,1602],{},[46,1596,1597],{},".npmrc"," に ",[46,1600,1601],{},"supportedArchitectures"," を追加：",[204,1604,1607],{"className":1605,"code":1606,"language":209},[207],"node-options=--experimental-sqlite\nsupportedArchitectures.os=linux,win32,darwin\nsupportedArchitectures.cpu=x64,arm64\n",[46,1608,1606],{"__ignoreMap":212},[83,1610,1611],{"start":301},[39,1612,1613],{},"lockfileを再生成（Windows PowerShellの場合）：",[204,1615,1619],{"className":1616,"code":1617,"language":1618,"meta":212,"style":212},"language-powershell shiki shiki-themes vitesse-light vitesse-light","Remove-Item -Recurse -Force node_modules\nRemove-Item pnpm-lock.yaml\npnpm install\n","powershell",[46,1620,1621,1626,1631],{"__ignoreMap":212},[291,1622,1623],{"class":293,"line":294},[291,1624,1625],{},"Remove-Item -Recurse -Force node_modules\n",[291,1627,1628],{"class":293,"line":301},[291,1629,1630],{},"Remove-Item pnpm-lock.yaml\n",[291,1632,1633],{"class":293,"line":316},[291,1634,1635],{},"pnpm install\n",[83,1637,1638],{"start":316},[39,1639,1640],{},"変更をコミット・プッシュ",[18,1642,1643],{},[22,1644,1645],{},"実際の対応ログ（2025-12-07）:",[204,1647,1650],{"className":1648,"code":1649,"language":209},[207],"PS C:\\Users\\numbe\\Git_repo\\mdx-playground\\apps\\web> Remove-Item -Recurse -Force node_modules\nPS C:\\Users\\numbe\\Git_repo\\mdx-playground\\apps\\web> Remove-Item pnpm-lock.yaml\nPS C:\\Users\\numbe\\Git_repo\\mdx-playground\\apps\\web> pnpm install\n\nPackages: +1326\nProgress: resolved 1531, reused 1275, downloaded 57, added 1326, done\n\n> nuxt-app@ postinstall C:\\Users\\numbe\\Git_repo\\mdx-playground\\apps\\web\n> nuxt prepare\n\n[@nuxt/content 6:24:39]  WARN  Deploying to Cloudflare requires using D1 database, switching to D1 database with binding DB.\n\n◆  Types generated in .nuxt.\n\nDone in 1m 5.9s using pnpm v10.10.0\n",[46,1651,1649],{"__ignoreMap":212},[18,1653,1654,1657],{},[22,1655,1656],{},"結果:"," lockfileにLinux用のバインディングが含まれるようになり、Cloudflareでのビルドが成功するようになった。",[142,1659],{},[31,1661,1663],{"id":1662},"問題2-カスタムドメインが反映されない","問題2: カスタムドメインが反映されない",[178,1665,1666],{"id":1666},"確認事項",[83,1668,1669,1722,1733],{},[39,1670,1671,1674],{},[22,1672,1673],{},"DNS設定が正しいか",[204,1675,1677],{"className":285,"code":1676,"language":287,"meta":212,"style":212},"# CNAMEレコードの確認\ndig log.eurekapu.com CNAME\n\n# 期待される出力\nlog.eurekapu.com. 300 IN CNAME your-project.pages.dev.\n",[46,1678,1679,1684,1695,1699,1704],{"__ignoreMap":212},[291,1680,1681],{"class":293,"line":294},[291,1682,1683],{"class":297},"# CNAMEレコードの確認\n",[291,1685,1686,1689,1692],{"class":293,"line":301},[291,1687,1688],{"class":304},"dig",[291,1690,1691],{"class":308}," log.eurekapu.com",[291,1693,1694],{"class":308}," CNAME\n",[291,1696,1697],{"class":293,"line":316},[291,1698,320],{"emptyLinePlaceholder":319},[291,1700,1701],{"class":293,"line":323},[291,1702,1703],{"class":297},"# 期待される出力\n",[291,1705,1706,1709,1713,1716,1719],{"class":293,"line":329},[291,1707,1708],{"class":304},"log.eurekapu.com.",[291,1710,1712],{"class":1711},"sM54T"," 300",[291,1714,1715],{"class":308}," IN",[291,1717,1718],{"class":308}," CNAME",[291,1720,1721],{"class":308}," your-project.pages.dev.\n",[39,1723,1724,1727,1729,1730,1732],{},[22,1725,1726],{},"SSL証明書のステータス",[550,1728],{},"Custom domains タブで ",[46,1731,1139],{}," になっているか確認",[39,1734,1735,1738],{},[22,1736,1737],{},"プロキシ設定（Cloudflare DNS使用時）",[36,1739,1740,1743],{},[39,1741,1742],{},"オレンジ雲アイコン = プロキシ有効（推奨）",[39,1744,1745],{},"グレー雲アイコン = DNS専用",[178,1747,71],{"id":71},[18,1749,1750,1751,1754],{},"証明書が ",[46,1752,1753],{},"Pending"," の場合：",[36,1756,1757,1760,1763],{},[39,1758,1759],{},"最大24時間待つ",[39,1761,1762],{},"DNS設定が正しいか再確認",[39,1764,1765],{},"Cloudflareサポートに問い合わせ",[142,1767],{},[31,1769,1771],{"id":1770},"問題3-環境変数が反映されない","問題3: 環境変数が反映されない",[178,1773,1666],{"id":1774},"確認事項-1",[83,1776,1777,1790,1808],{},[39,1778,1779,1781,1782],{},[22,1780,887],{}," の選択",[36,1783,1784,1787],{},[39,1785,1786],{},"Production と Preview は別々",[39,1788,1789],{},"両方で使う変数は両方に設定",[39,1791,1792,1795],{},[22,1793,1794],{},"変数名の大文字小文字",[36,1796,1797,1800],{},[39,1798,1799],{},"環境変数は大文字小文字を区別する",[39,1801,1802,1804,1805],{},[46,1803,899],{}," ≠ ",[46,1806,1807],{},"node_version",[39,1809,1810,1813],{},[22,1811,1812],{},"再デプロイ",[36,1814,1815],{},[39,1816,1817,1818],{},"環境変数を変更したら",[22,1819,1820],{},"再デプロイが必要",[178,1822,71],{"id":1823},"解決策-1",[204,1825,1827],{"className":285,"code":1826,"language":287,"meta":212,"style":212},"# 環境変数を変更後、空コミットで再デプロイ\ngit commit --allow-empty -m \"Trigger redeploy for env vars\"\ngit push\n",[46,1828,1829,1834,1852],{"__ignoreMap":212},[291,1830,1831],{"class":293,"line":294},[291,1832,1833],{"class":297},"# 環境変数を変更後、空コミットで再デプロイ\n",[291,1835,1836,1838,1840,1843,1845,1847,1850],{"class":293,"line":301},[291,1837,305],{"class":304},[291,1839,369],{"class":308},[291,1841,1842],{"class":312}," --allow-empty",[291,1844,372],{"class":312},[291,1846,376],{"class":375},[291,1848,1849],{"class":308},"Trigger redeploy for env vars",[291,1851,382],{"class":375},[291,1853,1854,1856],{"class":293,"line":316},[291,1855,305],{"class":304},[291,1857,1858],{"class":308}," push\n",[142,1860],{},[31,1862,1864],{"id":1863},"問題4-プレビューデプロイが作成されない","問題4: プレビューデプロイが作成されない",[178,1866,1666],{"id":1867},"確認事項-2",[83,1869,1870,1882,1895],{},[39,1871,1872,1874],{},[22,1873,1389],{},[36,1875,1876,1879],{},[39,1877,1878],{},"Settings > Builds & deployments",[39,1880,1881],{},"Preview deployments が有効か",[39,1883,1884,1887],{},[22,1885,1886],{},"GitHubアプリの権限",[36,1888,1889,1892],{},[39,1890,1891],{},"Cloudflare Pagesがリポジトリにアクセスできるか",[39,1893,1894],{},"GitHub Settings > Applications > Cloudflare Pages で確認",[39,1896,1897,1900],{},[22,1898,1899],{},"PRのターゲットブランチ",[36,1901,1902,1905,1914],{},[39,1903,1904],{},"Production branchへのPRのみプレビューが作成される",[39,1906,1907,1908,1107,1911,1913],{},"例: ",[46,1909,1910],{},"feature/test",[46,1912,693],{}," (◯)",[39,1915,1907,1916,1107,1919,1922],{},[46,1917,1918],{},"bugfix/a",[46,1920,1921],{},"develop"," (✗)",[142,1924],{},[31,1926,1928],{"id":1927},"問題5-wrangler-deploy-でエラーworkers用コマンド","問題5: wrangler deploy でエラー（Workers用コマンド）",[18,1930,1931],{},[22,1932,1441],{},[204,1934,1937],{"className":1935,"code":1936,"language":209},[207],"✘ [ERROR] It looks like you've run a Workers-specific command in a Pages project.\n  For Pages, please run `wrangler pages deploy` instead.\n",[46,1938,1936],{"__ignoreMap":212},[18,1940,1941],{},[22,1942,1579],{},[18,1944,1945,1948,1949,1951],{},[46,1946,1947],{},"wrangler deploy"," は Workers 用のコマンド。Pages プロジェクトでは ",[46,1950,48],{}," を使う必要がある。",[18,1953,1954],{},[22,1955,1452],{},[18,1957,1958],{},"デプロイコマンドを修正：",[204,1960,1963],{"className":1961,"code":1962,"language":209},[207],"# ❌ 間違い\nnpx wrangler deploy\n\n# ✅ 正しい\nnpx wrangler pages deploy dist\n",[46,1964,1962],{"__ignoreMap":212},[18,1966,1967],{},[22,1968,1645],{},[18,1970,1971,1972,1975],{},"Cloudflare Dashboard のデプロイコマンドを ",[46,1973,1974],{},"npx wrangler pages deploy dist"," に変更して解決。",[142,1977],{},[31,1979,1981],{"id":1980},"問題6-認証エラーcloudflare_api_token","問題6: 認証エラー（CLOUDFLARE_API_TOKEN）",[18,1983,1984],{},[22,1985,1441],{},[204,1987,1990],{"className":1988,"code":1989,"language":209},[207],"✘ [ERROR] A request to the Cloudflare API failed.\n  Authentication error [code: 10000]\n\n📎 It looks like you are authenticating Wrangler via a custom API token set in an environment variable.\nℹ️  The API Token is read from the CLOUDFLARE_API_TOKEN environment variable.\n",[46,1991,1989],{"__ignoreMap":212},[18,1993,1994],{},[22,1995,1579],{},[18,1997,1998,1999,2002,2003,2006],{},"環境変数 ",[46,2000,2001],{},"CLOUDFLARE_API_TOKEN"," に設定されているトークンに ",[22,2004,2005],{},"Cloudflare Pages: Edit"," 権限がない。",[18,2008,2009],{},[22,2010,1452],{},[18,2012,2013],{},"以下のいずれか：",[83,2015,2016,2030],{},[39,2017,2018,2021,2022],{},[22,2019,2020],{},"CLOUDFLARE_API_TOKEN を削除","（推奨）",[36,2023,2024,2027],{},[39,2025,2026],{},"Settings → Variables and secrets から削除",[39,2028,2029],{},"Git連携ではCloudflareが自動でトークンを提供する",[39,2031,2032,2035],{},[22,2033,2034],{},"トークンに権限を追加",[36,2036,2037,2045,2048],{},[39,2038,2039],{},[2040,2041,2042],"a",{"href":2042,"rel":2043},"https://dash.cloudflare.com/profile/api-tokens",[2044],"nofollow",[39,2046,2047],{},"該当トークンを編集",[39,2049,2050,2053],{},[22,2051,2052],{},"Account → Cloudflare Pages → Edit"," を追加",[18,2055,2056],{},[22,2057,1645],{},[18,2059,2060],{},"APIトークンの権限設定で「Cloudflare Pages: 編集」を追加して解決。",[142,2062],{},[31,2064,2066],{"id":2065},"問題7-ビルドトークンが無効","問題7: ビルドトークンが無効",[18,2068,2069],{},[22,2070,1441],{},[204,2072,2075],{"className":2073,"code":2074,"language":209},[207],"Failed: The build token selected for this build has been deleted or rolled and cannot be used for this build.\nPlease update your build token in the Worker Builds settings and retry the build.\n",[46,2076,2074],{"__ignoreMap":212},[18,2078,2079],{},[22,2080,1579],{},[18,2082,2083],{},"環境変数を変更した際に、以前使用していたビルドトークンが無効になった。",[18,2085,2086],{},[22,2087,1452],{},[18,2089,2090],{},"Settings → API トークン で新しいトークンを選択または作成。",[142,2092],{},[31,2094,2096],{"id":2095},"問題8-プロジェクトが見つからない","問題8: プロジェクトが見つからない",[18,2098,2099],{},[22,2100,1441],{},[204,2102,2105],{"className":2103,"code":2104,"language":209},[207],"✘ [ERROR] A request to the Cloudflare API (/accounts/.../pages/projects/mdx-playground-web) failed.\n  Project not found. The specified project name does not match any of your existing projects. [code: 8000007]\n",[46,2106,2104],{"__ignoreMap":212},[18,2108,2109],{},[22,2110,1579],{},[18,2112,2113,2116,2117,2120],{},[46,2114,2115],{},"wrangler.toml"," の ",[46,2118,2119],{},"name"," が古いプロジェクト名（削除済み）を指している。プロジェクトを削除して再作成した場合、プロジェクト名が変わっている可能性がある。",[18,2122,2123],{},[22,2124,1452],{},[18,2126,2013],{},[83,2128,2129,2145],{},[39,2130,2131,2134],{},[22,2132,2133],{},"wrangler.toml を修正",[204,2135,2139],{"className":2136,"code":2137,"language":2138,"meta":212,"style":212},"language-toml shiki shiki-themes vitesse-light vitesse-light","name = \"新しいプロジェクト名\"\n","toml",[46,2140,2141],{"__ignoreMap":212},[291,2142,2143],{"class":293,"line":294},[291,2144,2137],{},[39,2146,2147,2150],{},[22,2148,2149],{},"デプロイコマンドで明示的に指定",[204,2151,2154],{"className":2152,"code":2153,"language":209},[207],"npx wrangler pages deploy dist --project-name=新しいプロジェクト名\n",[46,2155,2153],{"__ignoreMap":212},[18,2157,2158],{},[22,2159,1645],{},[18,2161,2162],{},"デプロイコマンドを以下に変更して解決：",[204,2164,2167],{"className":2165,"code":2166,"language":209},[207],"npx wrangler pages deploy dist --project-name=mdx-playground\n",[46,2168,2166],{"__ignoreMap":212},[18,2170,2171,2172,2174],{},"しかし、最終的には ",[46,2173,748],{}," に変更することで解決（問題10参照）。",[142,2176],{},[31,2178,2180],{"id":2179},"問題9-モノレポで-npmrc-がルートにない","問題9: モノレポで .npmrc がルートにない",[18,2182,2183],{},[22,2184,1441],{},[204,2186,2188],{"className":2187,"code":1572,"language":209},[207],[46,2189,1572],{"__ignoreMap":212},[18,2191,2192],{},[22,2193,1579],{},[18,2195,2196,2197,2199,2200,2202,2203,2205,2206,2209,2210,2213],{},"モノレポ構成で ",[46,2198,1585],{}," がルートにあるが、",[46,2201,1597],{},"（",[46,2204,1601],{}," 設定）が ",[46,2207,2208],{},"apps/web/"," にしかない。Cloudflare がルートで ",[46,2211,2212],{},"pnpm install"," を実行するため、設定が適用されない。",[18,2215,2216],{},[22,2217,1452],{},[18,2219,2220,2221,2223],{},"ルートにも ",[46,2222,1597],{}," を作成：",[204,2225,2228],{"className":2226,"code":2227,"language":209},[207],"# リポジトリルート/.npmrc\nsupportedArchitectures.os=linux,win32,darwin\nsupportedArchitectures.cpu=x64,arm64\n",[46,2229,2227],{"__ignoreMap":212},[18,2231,2232],{},[22,2233,1645],{},[18,2235,2236,2237,2239,2240,2242],{},"リポジトリルートに ",[46,2238,1597],{}," を作成し、",[46,2241,1601],{}," を設定して解決。",[142,2244],{},[31,2246,2248],{"id":2247},"問題10-git連携でwranglerを使うとデプロイが失敗する最重要","問題10: Git連携でwranglerを使うとデプロイが失敗する（最重要）",[18,2250,2251],{},[22,2252,1441],{},[18,2254,2255],{},"様々なエラーが発生：",[36,2257,2258,2263,2268],{},[39,2259,2260],{},[46,2261,2262],{},"Authentication error [code: 10000]",[39,2264,2265],{},[46,2266,2267],{},"Project not found [code: 8000007]",[39,2269,2270],{},[46,2271,2272],{},"The build token has been deleted or rolled",[18,2274,2275],{},[22,2276,1579],{},[18,2278,2279,2282,2283,2286],{},[22,2280,2281],{},"Git連携では wrangler コマンドは不要。"," Cloudflareがビルド成果物を",[22,2284,2285],{},"自動的に","デプロイするため。",[18,2288,2289],{},"wranglerを使おうとすると：",[83,2291,2292,2295,2298],{},[39,2293,2294],{},"APIトークンの権限問題",[39,2296,2297],{},"プロジェクト名の不一致",[39,2299,2300],{},"ビルドトークンの問題",[18,2302,2303],{},"などが連鎖的に発生する。",[18,2305,2306],{},[22,2307,1452],{},[18,2309,2310,2311,2313],{},"デプロイコマンドを ",[46,2312,748],{}," に設定：",[204,2315,2318],{"className":2316,"code":2317,"language":209},[207],"ビルドコマンド: pnpm install && pnpm generate\nデプロイコマンド: true\nルートディレクトリ: apps/web\n",[46,2319,2317],{"__ignoreMap":212},[18,2321,2322,2324,2325,2327],{},[46,2323,748],{}," はシェルで「何もしないで成功」を意味する。ビルドが完了すれば、Cloudflareが自動的に ",[46,2326,763],{}," フォルダをデプロイする。",[18,2329,2330],{},[22,2331,2332],{},"Direct Upload vs Git連携の違い:",[645,2334,2335,2348],{},[648,2336,2337],{},[651,2338,2339,2342,2345],{},[654,2340,2341],{},"デプロイ方式",[654,2343,2344],{},"デプロイコマンド",[654,2346,2347],{},"仕組み",[664,2349,2350,2365],{},[651,2351,2352,2357,2362],{},[669,2353,2354],{},[22,2355,2356],{},"Direct Upload",[669,2358,2359],{},[46,2360,2361],{},"wrangler pages deploy dist",[669,2363,2364],{},"ローカルでビルド → 手動アップロード",[651,2366,2367,2372,2377],{},[669,2368,2369],{},[22,2370,2371],{},"Git連携",[669,2373,2374,2376],{},[46,2375,748],{},"（何もしない）",[669,2378,2379],{},"Cloudflareがビルド → 自動デプロイ",[18,2381,2382],{},[22,2383,1645],{},[18,2385,2310,2386,2388],{},[46,2387,748],{}," に変更したところ、正常にデプロイが完了。",[18,2390,2391],{},"最終的な設定：",[204,2393,2396],{"className":2394,"code":2395,"language":209},[207],"ビルドコマンド: pnpm install && pnpm generate\nデプロイコマンド: true\nルートディレクトリ: apps/web\n環境変数: NODE_VERSION=22\n",[46,2397,2395],{"__ignoreMap":212},[142,2399],{},[31,2401,2403],{"id":2402},"問題11-デプロイ成功後hello-worldしか表示されない","問題11: デプロイ成功後「Hello World」しか表示されない",[18,2405,2406],{},[22,2407,1441],{},[18,2409,2410],{},"ビルドは成功したが、サイトにアクセスすると：",[204,2412,2415],{"className":2413,"code":2414,"language":209},[207],"Hello world\n",[46,2416,2414],{"__ignoreMap":212},[18,2418,2419],{},"しか表示されず、コンテンツが見えない。",[18,2421,2422],{},[22,2423,1579],{},[18,2425,2426,2427,2429,2430,2432],{},"ビルドコマンドに ",[46,2428,731],{}," (",[46,2431,843],{},") を使用している。",[36,2434,2435,2448],{},[39,2436,2437,2439,2440],{},[46,2438,843],{}," = SSRモード（サーバーサイドレンダリング）\n",[36,2441,2442,2445],{},[39,2443,2444],{},"ランタイムでD1データベースからコンテンツを取得",[39,2446,2447],{},"D1にデータがないと空ページ表示",[39,2449,2450,2452,2453],{},[46,2451,768],{}," = SSGモード（静的サイト生成）\n",[36,2454,2455,2458],{},[39,2456,2457],{},"ビルド時にすべてのコンテンツをHTMLに事前レンダリング",[39,2459,2460],{},"D1データベース不要",[18,2462,2463],{},[22,2464,1452],{},[18,2466,2467,2468,2470],{},"ビルドコマンドを ",[46,2469,735],{}," に変更：",[204,2472,2475],{"className":2473,"code":2474,"language":209},[207],"# ❌ 間違い（SSRモード）\nnpm run build\n\n# ✅ 正しい（静的サイト生成）\npnpm install && pnpm generate\n",[46,2476,2474],{"__ignoreMap":212},[18,2478,2479],{},[22,2480,2481],{},"なぜ「Hello world」が表示されるか:",[83,2483,2484,2494,2501],{},[39,2485,2486,2487,2116,2490,2493],{},"SSRビルドでは、",[46,2488,2489],{},"nuxt.config.ts",[46,2491,2492],{},"prerender.routes"," に指定されたルートのみ事前レンダリング",[39,2495,2496,2497,2500],{},"他のコンテンツページ（",[46,2498,2499],{},"/2025-11-28/..."," など）はランタイムでD1から取得",[39,2502,2503],{},"D1データベースにコンテンツがないため、空のページ（デフォルト表示）が返される",[18,2505,2506],{},[22,2507,2508],{},"nuxt.config.ts の関連設定（問題箇所）:",[204,2510,2514],{"className":2511,"code":2512,"language":2513,"meta":212,"style":212},"language-typescript shiki shiki-themes vitesse-light vitesse-light","nitro: {\n  preset: \"cloudflare-pages\",\n  prerender: {\n    crawlLinks: true,\n    routes: ['/blog', '/']  // ← これらのルートのみ事前レンダリング\n  }\n}\n","typescript",[46,2515,2516,2527,2544,2553,2566,2601,2606],{"__ignoreMap":212},[291,2517,2518,2521,2524],{"class":293,"line":294},[291,2519,2520],{"class":304},"nitro",[291,2522,2523],{"class":1554},":",[291,2525,2526],{"class":1554}," {\n",[291,2528,2529,2532,2534,2536,2539,2541],{"class":293,"line":301},[291,2530,2531],{"class":304},"  preset",[291,2533,2523],{"class":1554},[291,2535,376],{"class":375},[291,2537,2538],{"class":308},"cloudflare-pages",[291,2540,1187],{"class":375},[291,2542,2543],{"class":1554},",\n",[291,2545,2546,2549,2551],{"class":293,"line":316},[291,2547,2548],{"class":304},"  prerender",[291,2550,2523],{"class":1554},[291,2552,2526],{"class":1554},[291,2554,2555,2558,2560,2564],{"class":293,"line":323},[291,2556,2557],{"class":304},"    crawlLinks",[291,2559,2523],{"class":1554},[291,2561,2563],{"class":2562},"sHkkW"," true",[291,2565,2543],{"class":1554},[291,2567,2568,2571,2573,2576,2579,2582,2584,2587,2590,2593,2595,2598],{"class":293,"line":329},[291,2569,2570],{"class":304},"    routes",[291,2572,2523],{"class":1554},[291,2574,2575],{"class":1554}," [",[291,2577,2578],{"class":375},"'",[291,2580,2581],{"class":308},"/blog",[291,2583,2578],{"class":375},[291,2585,2586],{"class":1554},",",[291,2588,2589],{"class":375}," '",[291,2591,2592],{"class":308},"/",[291,2594,2578],{"class":375},[291,2596,2597],{"class":1554},"]",[291,2599,2600],{"class":297},"  // ← これらのルートのみ事前レンダリング\n",[291,2602,2603],{"class":293,"line":335},[291,2604,2605],{"class":1554},"  }\n",[291,2607,2608],{"class":293,"line":1229},[291,2609,2610],{"class":1554},"}\n",[18,2612,2613],{},[22,2614,2615],{},"Direct Upload と Git連携の違い:",[645,2617,2618,2634],{},[648,2619,2620],{},[651,2621,2622,2625,2628,2631],{},[654,2623,2624],{},"方式",[654,2626,2627],{},"ローカルで実行",[654,2629,2630],{},"Cloudflareで実行",[654,2632,2633],{},"結果",[664,2635,2636,2650,2664],{},[651,2637,2638,2640,2644,2647],{},[669,2639,2356],{},[669,2641,2642],{},[46,2643,735],{},[669,2645,2646],{},"なし",[669,2648,2649],{},"✅ 静的ファイルアップロード",[651,2651,2652,2655,2657,2661],{},[669,2653,2654],{},"Git連携（現在）",[669,2656,2646],{},[669,2658,2659],{},[46,2660,731],{},[669,2662,2663],{},"❌ SSRビルド、D1必要",[651,2665,2666,2669,2671,2675],{},[669,2667,2668],{},"Git連携（正しい）",[669,2670,2646],{},[669,2672,2673],{},[46,2674,735],{},[669,2676,2677],{},"✅ 静的ファイル生成",[18,2679,2680],{},[22,2681,1645],{},[18,2683,2684],{},"Cloudflare Dashboard のビルドコマンドを以下に変更：",[204,2686,2689],{"className":2687,"code":2688,"language":209},[207],"pnpm install && pnpm generate\n",[46,2690,2688],{"__ignoreMap":212},[18,2692,2693],{},"これにより、すべてのコンテンツページが事前レンダリングされ、正常に表示されるようになった。",[142,2695],{},[14,2697,2698],{"id":2698},"チェックリスト",[18,2700,2701],{},"移行作業のチェックリストです。",[31,2703,2704],{"id":2704},"移行前",[36,2706,2709,2718,2724,2730,2736,2742],{"className":2707},[2708],"contains-task-list",[39,2710,2713,2717],{"className":2711},[2712],"task-list-item",[2714,2715],"input",{"disabled":319,"type":2716},"checkbox"," カスタムドメイン・サブドメインをメモ",[39,2719,2721,2723],{"className":2720},[2712],[2714,2722],{"disabled":319,"type":2716}," 環境変数をすべてメモ",[39,2725,2727,2729],{"className":2726},[2712],[2714,2728],{"disabled":319,"type":2716}," ビルド設定をメモ",[39,2731,2733,2735],{"className":2732},[2712],[2714,2734],{"disabled":319,"type":2716}," プロジェクト名をメモ",[39,2737,2739,2741],{"className":2738},[2712],[2714,2740],{"disabled":319,"type":2716}," 現在のサイトのスクリーンショットを保存",[39,2743,2745,2747],{"className":2744},[2712],[2714,2746],{"disabled":319,"type":2716}," GitHubに最新コードをpush",[31,2749,2750],{"id":2750},"移行中",[36,2752,2754,2760,2766,2772,2778,2784],{"className":2753},[2708],[39,2755,2757,2759],{"className":2756},[2712],[2714,2758],{"disabled":319,"type":2716}," 既存プロジェクトを削除",[39,2761,2763,2765],{"className":2762},[2712],[2714,2764],{"disabled":319,"type":2716}," Git連携で新規プロジェクト作成",[39,2767,2769,2771],{"className":2768},[2712],[2714,2770],{"disabled":319,"type":2716}," 同じプロジェクト名で作成（URLを維持する場合）",[39,2773,2775,2777],{"className":2774},[2712],[2714,2776],{"disabled":319,"type":2716}," ビルド設定を正しく入力",[39,2779,2781,2783],{"className":2780},[2712],[2714,2782],{"disabled":319,"type":2716}," 環境変数をすべて設定",[39,2785,2787,2789],{"className":2786},[2712],[2714,2788],{"disabled":319,"type":2716}," 初回デプロイ成功を確認",[31,2791,2792],{"id":2792},"移行後",[36,2794,2796,2802,2808,2814,2820,2826],{"className":2795},[2708],[39,2797,2799,2801],{"className":2798},[2712],[2714,2800],{"disabled":319,"type":2716}," カスタムドメインを再設定",[39,2803,2805,2807],{"className":2804},[2712],[2714,2806],{"disabled":319,"type":2716}," SSL証明書が有効化されているか確認",[39,2809,2811,2813],{"className":2810},[2712],[2714,2812],{"disabled":319,"type":2716}," サイトが正常に表示されるか確認",[39,2815,2817,2819],{"className":2816},[2712],[2714,2818],{"disabled":319,"type":2716}," テストコミットで自動デプロイを確認",[39,2821,2823,2825],{"className":2822},[2712],[2714,2824],{"disabled":319,"type":2716}," プレビューデプロイ（PR）の動作確認",[39,2827,2829,2831],{"className":2828},[2712],[2714,2830],{"disabled":319,"type":2716}," 古いデプロイURLをリダイレクト設定（必要に応じて）",[142,2833],{},[14,2835,2836],{"id":2836},"移行後の運用フロー",[31,2838,2839],{"id":2839},"通常の開発フロー",[204,2841,2843],{"className":285,"code":2842,"language":287,"meta":212,"style":212},"# 1. 機能ブランチを作成\ngit checkout -b feature/new-feature\n\n# 2. コードを変更\n# ... 編集 ...\n\n# 3. コミット & プッシュ\ngit add .\ngit commit -m \"Add new feature\"\ngit push origin feature/new-feature\n\n# 4. GitHubでPull Request作成\n# → プレビューURLが自動生成される\n\n# 5. レビュー & マージ\n# → mainブランチに自動デプロイ\n",[46,2844,2845,2850,2861,2865,2870,2875,2879,2884,2892,2907,2917,2922,2928,2934,2939,2945],{"__ignoreMap":212},[291,2846,2847],{"class":293,"line":294},[291,2848,2849],{"class":297},"# 1. 機能ブランチを作成\n",[291,2851,2852,2854,2856,2858],{"class":293,"line":301},[291,2853,305],{"class":304},[291,2855,1277],{"class":308},[291,2857,1280],{"class":312},[291,2859,2860],{"class":308}," feature/new-feature\n",[291,2862,2863],{"class":293,"line":316},[291,2864,320],{"emptyLinePlaceholder":319},[291,2866,2867],{"class":293,"line":323},[291,2868,2869],{"class":297},"# 2. コードを変更\n",[291,2871,2872],{"class":293,"line":329},[291,2873,2874],{"class":297},"# ... 編集 ...\n",[291,2876,2877],{"class":293,"line":335},[291,2878,320],{"emptyLinePlaceholder":319},[291,2880,2881],{"class":293,"line":1229},[291,2882,2883],{"class":297},"# 3. コミット & プッシュ\n",[291,2885,2886,2888,2890],{"class":293,"line":1319},[291,2887,305],{"class":304},[291,2889,359],{"class":308},[291,2891,362],{"class":308},[291,2893,2894,2896,2898,2900,2902,2905],{"class":293,"line":1328},[291,2895,305],{"class":304},[291,2897,369],{"class":308},[291,2899,372],{"class":312},[291,2901,376],{"class":375},[291,2903,2904],{"class":308},"Add new feature",[291,2906,382],{"class":375},[291,2908,2909,2911,2913,2915],{"class":293,"line":1344},[291,2910,305],{"class":304},[291,2912,398],{"class":308},[291,2914,401],{"class":308},[291,2916,2860],{"class":308},[291,2918,2920],{"class":293,"line":2919},11,[291,2921,320],{"emptyLinePlaceholder":319},[291,2923,2925],{"class":293,"line":2924},12,[291,2926,2927],{"class":297},"# 4. GitHubでPull Request作成\n",[291,2929,2931],{"class":293,"line":2930},13,[291,2932,2933],{"class":297},"# → プレビューURLが自動生成される\n",[291,2935,2937],{"class":293,"line":2936},14,[291,2938,320],{"emptyLinePlaceholder":319},[291,2940,2942],{"class":293,"line":2941},15,[291,2943,2944],{"class":297},"# 5. レビュー & マージ\n",[291,2946,2948],{"class":293,"line":2947},16,[291,2949,2950],{"class":297},"# → mainブランチに自動デプロイ\n",[31,2952,2953],{"id":2953},"ホットフィックスの場合",[204,2955,2957],{"className":285,"code":2956,"language":287,"meta":212,"style":212},"# 1. mainから直接修正\ngit checkout main\ngit pull\n\n# 2. 修正してプッシュ\ngit add .\ngit commit -m \"Hotfix: critical bug\"\ngit push\n\n# → 即座に本番環境にデプロイされる\n",[46,2958,2959,2964,2972,2979,2983,2988,2996,3011,3017,3021],{"__ignoreMap":212},[291,2960,2961],{"class":293,"line":294},[291,2962,2963],{"class":297},"# 1. mainから直接修正\n",[291,2965,2966,2968,2970],{"class":293,"line":301},[291,2967,305],{"class":304},[291,2969,1277],{"class":308},[291,2971,404],{"class":308},[291,2973,2974,2976],{"class":293,"line":316},[291,2975,305],{"class":304},[291,2977,2978],{"class":308}," pull\n",[291,2980,2981],{"class":293,"line":323},[291,2982,320],{"emptyLinePlaceholder":319},[291,2984,2985],{"class":293,"line":329},[291,2986,2987],{"class":297},"# 2. 修正してプッシュ\n",[291,2989,2990,2992,2994],{"class":293,"line":335},[291,2991,305],{"class":304},[291,2993,359],{"class":308},[291,2995,362],{"class":308},[291,2997,2998,3000,3002,3004,3006,3009],{"class":293,"line":1229},[291,2999,305],{"class":304},[291,3001,369],{"class":308},[291,3003,372],{"class":312},[291,3005,376],{"class":375},[291,3007,3008],{"class":308},"Hotfix: critical bug",[291,3010,382],{"class":375},[291,3012,3013,3015],{"class":293,"line":1319},[291,3014,305],{"class":304},[291,3016,1858],{"class":308},[291,3018,3019],{"class":293,"line":1328},[291,3020,320],{"emptyLinePlaceholder":319},[291,3022,3023],{"class":293,"line":1344},[291,3024,3025],{"class":297},"# → 即座に本番環境にデプロイされる\n",[142,3027],{},[14,3029,3030],{"id":3030},"まとめ",[31,3032,3033],{"id":3033},"移行のメリット",[18,3035,3036,3037],{},"✅ ",[22,3038,807],{},[36,3040,3041,3044],{},[39,3042,3043],{},"GitHubにpushするだけで自動ビルド・デプロイ",[39,3045,3046],{},"手動コマンド実行が不要",[18,3048,3036,3049],{},[22,3050,3051],{},"プレビューデプロイ",[36,3053,3054,3057],{},[39,3055,3056],{},"Pull Request単位でプレビュー環境を自動作成",[39,3058,3059],{},"レビュー時に実際の動作を確認可能",[18,3061,3036,3062],{},[22,3063,3064],{},"デプロイ履歴",[36,3066,3067,3070],{},[39,3068,3069],{},"ビルドログ、デプロイ履歴を一元管理",[39,3071,3072],{},"ロールバックも簡単",[18,3074,3036,3075],{},[22,3076,3077],{},"チーム開発",[36,3079,3080,3083],{},[39,3081,3082],{},"複数人での開発が容易",[39,3084,3085],{},"PRベースのワークフローが使える",[31,3087,3088],{"id":3088},"移行時の注意点",[18,3090,3091],{},"⚠️ プロジェクトの削除が必要（Direct Upload → Git連携は直接変更不可）\n⚠️ カスタムドメイン・環境変数は手動で再設定\n⚠️ 初回設定を正しく行わないとビルドが失敗する",[31,3093,3094],{"id":3094},"参考リンク",[36,3096,3097,3104,3111,3118],{},[39,3098,3099],{},[2040,3100,3103],{"href":3101,"rel":3102},"https://developers.cloudflare.com/pages/configuration/git-integration/",[2044],"Cloudflare Pages Git Integration",[39,3105,3106],{},[2040,3107,3110],{"href":3108,"rel":3109},"https://developers.cloudflare.com/pages/configuration/git-integration/github-integration/",[2044],"GitHub Integration Guide",[39,3112,3113],{},[2040,3114,3117],{"href":3115,"rel":3116},"https://developers.cloudflare.com/pages/configuration/builds/",[2044],"Cloudflare Pages Builds",[39,3119,3120],{},[2040,3121,3124],{"href":3122,"rel":3123},"https://developers.cloudflare.com/pages/configuration/custom-domains/",[2044],"Custom Domains",[142,3126],{},[18,3128,3129],{},[22,3130,3131],{},"移行作業は慎重に行い、必ず設定のバックアップを取ってから実行してください。",[3133,3134,3135],"style",{},"html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}",{"title":212,"searchDepth":301,"depth":301,"links":3137},[3138,3142,3143,3152,3165,3170,3174],{"id":16,"depth":301,"text":16,"children":3139},[3140,3141],{"id":33,"depth":316,"text":34},{"id":75,"depth":316,"text":75},{"id":146,"depth":301,"text":146},{"id":165,"depth":301,"text":165,"children":3144},[3145,3146,3147,3148,3149,3150,3151],{"id":168,"depth":316,"text":169},{"id":277,"depth":316,"text":278},{"id":422,"depth":316,"text":423},{"id":559,"depth":316,"text":560},{"id":1055,"depth":316,"text":1056},{"id":1158,"depth":316,"text":1159},{"id":1371,"depth":316,"text":1372},{"id":1428,"depth":301,"text":1428,"children":3153},[3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164],{"id":1431,"depth":316,"text":1432},{"id":1662,"depth":316,"text":1663},{"id":1770,"depth":316,"text":1771},{"id":1863,"depth":316,"text":1864},{"id":1927,"depth":316,"text":1928},{"id":1980,"depth":316,"text":1981},{"id":2065,"depth":316,"text":2066},{"id":2095,"depth":316,"text":2096},{"id":2179,"depth":316,"text":2180},{"id":2247,"depth":316,"text":2248},{"id":2402,"depth":316,"text":2403},{"id":2698,"depth":301,"text":2698,"children":3166},[3167,3168,3169],{"id":2704,"depth":316,"text":2704},{"id":2750,"depth":316,"text":2750},{"id":2792,"depth":316,"text":2792},{"id":2836,"depth":301,"text":2836,"children":3171},[3172,3173],{"id":2839,"depth":316,"text":2839},{"id":2953,"depth":316,"text":2953},{"id":3030,"depth":301,"text":3030,"children":3175},[3176,3177,3178],{"id":3033,"depth":316,"text":3033},{"id":3088,"depth":316,"text":3088},{"id":3094,"depth":316,"text":3094},null,"カスタムドメイン・サブドメイン設定を含む、既存のCloudflare PagesプロジェクトをDirect UploadからGitHub連携に移行する詳細ガイド","md",{},"/cloudflare-pages-migration-guide",false,"2025-11-29T00:00:00.000Z",{"title":5,"description":3180},"2025-11/2025-11-29/cloudflare-pages-migration-guide",[3189,3190,305,3191,3192],"cloudflare","pages","migration","deployment","2025-12-07T00:00:00.000Z","9HIm4THzMj8NEGjngZGO50vR1gbeypuTyGi2VVMhrhs",[],[3197,3201,3204,3208,3211],{"title":3198,"path":3199,"publishedAt":3200},"NetlifyサイトをCloudflare Pagesに移行する手順","/migrate-netlify-site-to-cloudflare-pages","2025-11-27T00:00:00.000Z",{"title":3202,"path":3203,"publishedAt":3193},"Cloudflare Pages Git統合からGitHub Actions Direct Uploadへの移行記録","/cloudflare-github-actions-migration",{"title":3205,"path":3206,"publishedAt":3207},"Cloudflareデプロイの自動化スクリプト追加","/deploy-script-setup","2025-12-01T00:00:00.000Z",{"title":3209,"path":3210,"publishedAt":3185},"WordPress から Nuxt + Cloudflare への完全移行ガイド","/wordpress-to-nuxt-cloudflare-migration",{"title":3212,"path":3213,"publishedAt":3200},"Cloudflare Pagesにカスタムドメインを設定する手順","/cloudflare-pages-custom-domain","https://log.eurekapu.com/og/blog/cloudflare-pages-migration-guide.png?v=2025-12-07T00%3A00%3A00.000Z&title=%E6%97%A2%E5%AD%98Cloudflare%20Pages%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92Direct%20Upload%E3%81%8B%E3%82%89Git%E9%80%A3%E6%90%BA%E3%81%AB%E7%A7%BB%E8%A1%8C%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86&author=Kei%20Komatsu&sig=5d6c24aefd26fb2a",1785654965059]