diff --git a/.changeset/gorgeous-kids-protect.md b/.changeset/gorgeous-kids-protect.md new file mode 100644 index 000000000000..9386ce52c15d --- /dev/null +++ b/.changeset/gorgeous-kids-protect.md @@ -0,0 +1,5 @@ +--- +"create-cloudflare": patch +--- + +fix and update experimental Next.js template to work on `@opennextjs/cloudflare@0.3.x` diff --git a/packages/create-cloudflare/.gitignore b/packages/create-cloudflare/.gitignore index db7dbd67a7c7..1152fa6a605e 100644 --- a/packages/create-cloudflare/.gitignore +++ b/packages/create-cloudflare/.gitignore @@ -13,5 +13,8 @@ templates*/**/pnpm-lock.yaml # the build step renames .gitignore files to __dot__gitignore templates*/**/__dot__gitignore +# include .dev.vars template files +!templates*/**/.dev.vars + scripts/snippets !scripts/snippets/.gitkeep diff --git a/packages/create-cloudflare/e2e-tests/frameworks.test.ts b/packages/create-cloudflare/e2e-tests/frameworks.test.ts index 7bc9edcca872..c17d23480ab3 100644 --- a/packages/create-cloudflare/e2e-tests/frameworks.test.ts +++ b/packages/create-cloudflare/e2e-tests/frameworks.test.ts @@ -188,6 +188,11 @@ function getFrameworkTests(opts: { expectedText: "Create Next App", }, unsupportedOSs: ["win32"], + unsupportedPms: [ + // bun and yarn are failing in CI + "bun", + "yarn", + ], }, nuxt: { testCommitMessage: true, diff --git a/packages/create-cloudflare/templates-experimental/next/c3.ts b/packages/create-cloudflare/templates-experimental/next/c3.ts index 74195c25e1ad..80f0959f68ac 100644 --- a/packages/create-cloudflare/templates-experimental/next/c3.ts +++ b/packages/create-cloudflare/templates-experimental/next/c3.ts @@ -19,7 +19,7 @@ const generate = async (ctx: C3Context) => { const configure = async () => { const packages = [ - "@opennextjs/cloudflare@0.2.x", + "@opennextjs/cloudflare@0.3.x", "@cloudflare/workers-types", ]; await installPackages(packages, { @@ -47,8 +47,8 @@ export default { configure, transformPackageJson: async () => ({ scripts: { - deploy: `cloudflare && wrangler deploy`, - preview: `cloudflare && wrangler dev`, + deploy: `opennextjs-cloudflare && wrangler deploy`, + preview: `opennextjs-cloudflare && wrangler dev`, "cf-typegen": `wrangler types --env-interface CloudflareEnv env.d.ts`, }, }), diff --git a/packages/create-cloudflare/templates-experimental/next/templates/.dev.vars b/packages/create-cloudflare/templates-experimental/next/templates/.dev.vars new file mode 100644 index 000000000000..96d720bda5ef --- /dev/null +++ b/packages/create-cloudflare/templates-experimental/next/templates/.dev.vars @@ -0,0 +1,2 @@ +# Load .env.development* files when running `wrangler dev` +NEXTJS_ENV=development diff --git a/packages/create-cloudflare/templates-experimental/next/templates/.gitignore b/packages/create-cloudflare/templates-experimental/next/templates/.gitignore index 0b418115f12a..76107d8b80c9 100644 --- a/packages/create-cloudflare/templates-experimental/next/templates/.gitignore +++ b/packages/create-cloudflare/templates-experimental/next/templates/.gitignore @@ -35,8 +35,5 @@ yarn-error.log* *.tsbuildinfo next-env.d.ts - -# Cloudflare related -/.save.next -/.worker-next -/.wrangler +# OpenNext +/.open-next diff --git a/packages/create-cloudflare/templates-experimental/next/templates/open-next.config.ts b/packages/create-cloudflare/templates-experimental/next/templates/open-next.config.ts new file mode 100644 index 000000000000..30889ac44a49 --- /dev/null +++ b/packages/create-cloudflare/templates-experimental/next/templates/open-next.config.ts @@ -0,0 +1,28 @@ +import cache from "@opennextjs/cloudflare/kvCache"; + +const config = { + default: { + override: { + wrapper: "cloudflare-node", + converter: "edge", + incrementalCache: async () => cache, + tagCache: "dummy", + queue: "dummy", + }, + }, + + middleware: { + external: true, + override: { + wrapper: "cloudflare-edge", + converter: "edge", + proxyExternalRequest: "fetch", + }, + }, + + dangerous: { + enableCacheInterception: false, + }, +}; + +export default config; diff --git a/packages/create-cloudflare/templates-experimental/next/templates/wrangler.toml b/packages/create-cloudflare/templates-experimental/next/templates/wrangler.toml index 4f7e9f1324c4..10aaf705902c 100644 --- a/packages/create-cloudflare/templates-experimental/next/templates/wrangler.toml +++ b/packages/create-cloudflare/templates-experimental/next/templates/wrangler.toml @@ -1,6 +1,6 @@ #:schema node_modules/wrangler/config-schema.json name = "" -main = ".worker-next/index.mjs" +main = ".open-next/worker.js" compatibility_date = "2024-09-26" compatibility_flags = ["nodejs_compat"] @@ -9,4 +9,4 @@ compatibility_flags = ["nodejs_compat"] minify = true # Use the new Workers + Assets to host the static frontend files -assets = { directory = ".worker-next/assets", binding = "ASSETS" } +assets = { directory = ".open-next/assets", binding = "ASSETS" }