diff --git a/README.md b/README.md index 13f4ff0155..0deb3b81a3 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,10 @@ tooling ## Quick Start > **Note** -> The [db](./packages/db) package is preconfigured to use Supabase and is **edge-bound** with the [Vercel Postgres](https://github.com/vercel/storage/tree/main/packages/postgres) driver. If you're using something else, make the necessary modifications to the [schema](./packages/db/src/schema.ts) as well as the [client](./packages/db/src/index.ts) and the [drizzle config](./packages/db/drizzle.config.ts). If you want to switch to non-edge database driver, remove `export const runtime = "edge";` [from all pages and api routes](https://github.com/t3-oss/create-t3-turbo/issues/634#issuecomment-1730240214). +> The [db](./packages/db) package is preconfigured to use Supabase and is **edge-bound** with the [Vercel Postgres](https://github.com/vercel/storage/tree/main/packages/postgres) driver. If you're using something else, make the necessary modifications to the [schema](./packages/db/src/schema.ts) as well as the [client](./packages/db/src/index.ts) and the [drizzle config](./packages/db/drizzle.config.ts). If you want to switch to non-edge database driver, remove `export const runtime = process.platform === "win32" ? "nodejs" : "edge";` [from all pages and api routes](https://github.com/t3-oss/create-t3-turbo/issues/634#issuecomment-1730240214). + +> **Note** +> There is currently a [bug](https://github.com/vercel/next.js/issues/53562) that prevents using the edge runtime when developing a `Next.js` app on Windows with `turborepo`. Because of this bug, we check the platform when exporting the `runtime` variable and default to the `nodejs` runtime if the process is running on Windows. To get it running, follow the steps below: diff --git a/apps/nextjs/src/app/api/auth/[...nextauth]/route.ts b/apps/nextjs/src/app/api/auth/[...nextauth]/route.ts index 22ddf2c4fd..3f1f93d45c 100644 --- a/apps/nextjs/src/app/api/auth/[...nextauth]/route.ts +++ b/apps/nextjs/src/app/api/auth/[...nextauth]/route.ts @@ -3,7 +3,7 @@ import { NextRequest, NextResponse } from "next/server"; import { handlers, isSecureContext } from "@acme/auth"; -export const runtime = "edge"; +export const runtime = process.platform === "win32" ? "nodejs" : "edge"; const EXPO_COOKIE_NAME = "__acme-expo-redirect-state"; const AUTH_COOKIE_PATTERN = /authjs\.session-token=([^;]+)/; diff --git a/apps/nextjs/src/app/api/trpc/[trpc]/route.ts b/apps/nextjs/src/app/api/trpc/[trpc]/route.ts index 4a0ef6c434..f2f564278a 100644 --- a/apps/nextjs/src/app/api/trpc/[trpc]/route.ts +++ b/apps/nextjs/src/app/api/trpc/[trpc]/route.ts @@ -3,7 +3,7 @@ import { fetchRequestHandler } from "@trpc/server/adapters/fetch"; import { appRouter, createTRPCContext } from "@acme/api"; import { auth } from "@acme/auth"; -export const runtime = "edge"; +export const runtime = process.platform === "win32" ? "nodejs" : "edge"; /** * Configure basic CORS headers diff --git a/apps/nextjs/src/app/page.tsx b/apps/nextjs/src/app/page.tsx index 0e4df9fb0d..91d3797da8 100644 --- a/apps/nextjs/src/app/page.tsx +++ b/apps/nextjs/src/app/page.tsx @@ -8,7 +8,7 @@ import { PostList, } from "./_components/posts"; -export const runtime = "edge"; +export const runtime = process.platform === "win32" ? "nodejs" : "edge"; export default function HomePage() { // You can await this here if you don't want to show Suspense fallback below