From 2be1d859e4c7420205a21acc9a5b1b95bcaed43b Mon Sep 17 00:00:00 2001 From: v0 Date: Sun, 2 Nov 2025 18:06:20 +0000 Subject: [PATCH] feat: configure static export for Cloudflare Pages Add `output: 'export'` to next.config.mjs and ensure output to `/out`. #VERCEL_SKIP Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com> --- .gitignore | 2 +- README.md | 2 +- next.config.mjs | 3 ++- package.json | 6 +++--- pnpm-lock.yaml | 40 ++++++++++++++++++++++++---------------- 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index f650315..37c2b6f 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,4 @@ yarn-error.log* # typescript *.tsbuildinfo -next-env.d.ts \ No newline at end of file +next-env.d.ts diff --git a/README.md b/README.md index 933bda6..c8b8b30 100644 --- a/README.md +++ b/README.md @@ -27,4 +27,4 @@ Continue building your app on: 1. Create and modify your project using [v0.app](https://v0.app) 2. Deploy your chats from the v0 interface 3. Changes are automatically pushed to this repository -4. Vercel deploys the latest version from this repository \ No newline at end of file +4. Vercel deploys the latest version from this repository diff --git a/next.config.mjs b/next.config.mjs index 2033beb..ffcb344 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,5 +1,6 @@ /** @type {import('next').NextConfig} */ const nextConfig = { + output: 'export', eslint: { ignoreDuringBuilds: true, }, @@ -11,4 +12,4 @@ const nextConfig = { }, } -export default nextConfig \ No newline at end of file +export default nextConfig diff --git a/package.json b/package.json index eb715a4..bb2b97c 100644 --- a/package.json +++ b/package.json @@ -30,14 +30,14 @@ "@radix-ui/react-select": "2.1.4", "@radix-ui/react-separator": "1.1.1", "@radix-ui/react-slider": "1.2.2", - "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-slot": "latest", "@radix-ui/react-switch": "1.1.2", "@radix-ui/react-tabs": "1.1.2", "@radix-ui/react-toast": "1.2.4", "@radix-ui/react-toggle": "1.1.1", "@radix-ui/react-toggle-group": "1.1.1", "@radix-ui/react-tooltip": "1.1.6", - "@vercel/analytics": "1.3.1", + "@vercel/analytics": "latest", "autoprefixer": "^10.4.20", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -47,7 +47,7 @@ "input-otp": "1.4.1", "lucide-react": "^0.454.0", "next": "16.0.0", - "next-themes": "^0.4.6", + "next-themes": "latest", "react": "19.2.0", "react-day-picker": "9.8.0", "react-dom": "19.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bbc83de..ad74fa5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,8 +72,8 @@ importers: specifier: 1.2.2 version: 1.2.2(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@radix-ui/react-slot': - specifier: 1.1.1 - version: 1.1.1(@types/react@19.0.0)(react@19.2.0) + specifier: latest + version: 1.2.3(@types/react@19.0.0)(react@19.2.0) '@radix-ui/react-switch': specifier: 1.1.2 version: 1.1.2(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -93,8 +93,8 @@ importers: specifier: 1.1.6 version: 1.1.6(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@vercel/analytics': - specifier: 1.3.1 - version: 1.3.1(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0) + specifier: latest + version: 1.5.0(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.5.0) @@ -123,7 +123,7 @@ importers: specifier: 16.0.0 version: 16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) next-themes: - specifier: ^0.4.6 + specifier: latest version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: specifier: 19.2.0 @@ -1201,16 +1201,31 @@ packages: '@types/react@19.0.0': resolution: {integrity: sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==} - '@vercel/analytics@1.3.1': - resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==} + '@vercel/analytics@1.5.0': + resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==} peerDependencies: + '@remix-run/react': ^2 + '@sveltejs/kit': ^1 || ^2 next: '>= 13' - react: ^18 || ^19 + react: ^18 || ^19 || ^19.0.0-rc + svelte: '>= 4' + vue: ^3 + vue-router: ^4 peerDependenciesMeta: + '@remix-run/react': + optional: true + '@sveltejs/kit': + optional: true next: optional: true react: optional: true + svelte: + optional: true + vue: + optional: true + vue-router: + optional: true aria-hidden@1.2.6: resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} @@ -1619,9 +1634,6 @@ packages: engines: {node: '>=10'} hasBin: true - server-only@0.0.1: - resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} - sharp@0.34.4: resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -2708,9 +2720,7 @@ snapshots: dependencies: csstype: 3.1.3 - '@vercel/analytics@1.3.1(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)': - dependencies: - server-only: 0.0.1 + '@vercel/analytics@1.5.0(next@16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)': optionalDependencies: next: 16.0.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -3076,8 +3086,6 @@ snapshots: semver@7.7.3: optional: true - server-only@0.0.1: {} - sharp@0.34.4: dependencies: '@img/colour': 1.0.0