Add migrate command for initializing open-next for existing Next.js projects#1083
Add migrate command for initializing open-next for existing Next.js projects#1083
migrate command for initializing open-next for existing Next.js projects#1083Conversation
🦋 Changeset detectedLatest commit: 608b497 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
commit: |
|
@vicb right now if an incorrect version of Next.js is used we get this: probably we should check the version and handle it more gracefully, right? or shall we even try to bump the version? what do you think? |
vicb
left a comment
There was a problem hiding this comment.
A lot of nits.
Also I realize that not having a monorepo makes it much harder to discover utils.
Should hopefully be fixed soon
There was a problem hiding this comment.
Same comment about moving the detection than for the wrangler config
There was a problem hiding this comment.
does this work?
There was a problem hiding this comment.
It works.
I usually add a "maybe" in the mix if it can return undefined or throw when there is no "maybe"
There was a problem hiding this comment.
Also would be nice if the API is consistent for the different files
There was a problem hiding this comment.
I usually add a "maybe" in the mix if it can return undefined or throw when there is no "maybe"
The return type make it clear to me so adding a maybe feels unnecessary to me, but I'm happy to add that since it's your preference 👍
Also would be nice if the API is consistent for the different files
I thought the same when implementing the two solutions... but having a return from a function that is never actually used feels ugly/potentially confusing to me, but it's not a huge deal, I'm totally happy to use a consistent API 👍
There was a problem hiding this comment.
The return type make it clear to me so adding a maybe feels unnecessary to me, but I'm happy to add that since it's your preference 👍
When you review code on GH, you don't get to see the return type easily
I thought the same when implementing the two solutions... but having a return from a function that is never actually used feels ugly/potentially confusing to me, but it's not a huge deal, I'm totally happy to use a consistent API 👍
I need to double check the code here, I thought it was used
|
Could you please merge master in this PR instead of rebasing? |
8bc4f63 to
87e3b01
Compare
init command for initializing open-next for existing Next.js projectsmigrate command for initializing open-next for existing Next.js projects
Co-authored-by: Victor Berchet <victor@suumit.com>
Co-authored-by: Victor Berchet <victor@suumit.com>
Co-authored-by: Victor Berchet <victor@suumit.com>
Co-authored-by: Victor Berchet <victor@suumit.com>
Co-authored-by: Victor Berchet <victor@suumit.com>
fb72a97 to
608b497
Compare
opennextjs/opennextjs-cloudflare#1083 Changeset: .changeset/port-pr-1083.md
* Add SKILL.md for porting PRs and AGENTS.md for coding guidelines * update skill * Port opennextjs/opennextjs-aws#1118 as a test * Port opennextjs/opennextjs-aws#1117 * update skill * Port opennextjs/opennextjs-aws#1114 * Port PR opennextjs/opennextjs-aws#1107 * update skills * Port PR opennextjs/opennextjs-aws#1108 * Port PR opennextjs/opennextjs-aws#1104 * Port PR opennextjs/opennextjs-aws#1101 * Port PR opennextjs/opennextjs-aws#1098 * chore: port PR #1083 from source repository opennextjs/opennextjs-cloudflare#1083 Changeset: .changeset/port-pr-1083.md * chore: port PR #1105 from source repository opennextjs/opennextjs-cloudflare#1105 Changeset: .changeset/port-pr-1105.md * chore: port PR #1097 from source repository opennextjs/opennextjs-cloudflare#1097 Changeset: .changeset/port-pr-1097.md * chore: port PR #1122 from source repository opennextjs/opennextjs-cloudflare#1122 Applied bugfixes and improvements to the 'migrate' command: - Fixed extra newlines when appending to files (updated conditionalAppendFileSync signature) - Fixed error when 'public' directory is missing (creates parent directories automatically) - Fixed Next.js config file update to check if the file exists first - Updated checkRunningInsideNextjsApp to accept { appPath: string } instead of full BuildOptions Changesets: - .changeset/port-pr-1122-cloudflare.md - .changeset/port-pr-1122-aws.md * chore: update port PR skill instructions for staging and committing changes * chore: port PR #1126 from source repository opennextjs/opennextjs-cloudflare#1126 Fix: prevent Worker hang on HEAD requests to static assets When run_worker_first is enabled, HEAD requests to static assets hang the Worker because response.body is null (per HTTP spec) and the fallback new ReadableStream() creates a stream that never closes. Changes: - Return null body for HEAD requests instead of falling through to the hanging ReadableStream fallback - Add tests for maybeGetAssetResult covering GET, HEAD, 404, POST, and run_worker_first=false cases Changeset: .changeset/port-pr-1126.md * linting * chore: port PR #1127 from source repository opennextjs/opennextjs-cloudflare#1127 Changeset: .changeset/port-pr-1127.md * chore: port PR #1138 from source repository opennextjs/opennextjs-cloudflare#1138 Changeset: .changeset/port-pr-1138.md * chore: port PR #1133 from source repository opennextjs/opennextjs-cloudflare#1133 Changeset: .changeset/port-pr-1133.md Update the migrate command to attempt to create an R2 bucket for caching as part of the migration process, if that is not possible an application without caching enabled will be generated instead. * chore: port PR #1142 from source repository opennextjs/opennextjs-cloudflare#1142 Changeset: .changeset/port-pr-1142.md * chore: port PR #1147 from source repository opennextjs/opennextjs-cloudflare#1147 make dev /cdn-cgi/image behaves like prod for consistency Changeset: .changeset/port-pr-1147.md * chore: port PR #1150 from source repository opennextjs/opennextjs-cloudflare#1150 Changeset: .changeset/port-pr-1150.md * fix lockfile * fix test

Fixes https://jira.cfdata.org/browse/DEVX-2383
Docs PR: opennextjs/docs#205
This PR addes a new
migrateCLI command that adds the OpenNext adapter to standard Next.js projects (this basically automates the steps in https://opennext.js.org/cloudflare/get-started).You can manually test this command by running:
to create a new Next.js project, cd into the project:
cd my-next-appinstall a compatible version of Next.js:
and then run the
initcommand:You should see something like the following:

Thanks to @2u841r to spearheading this effort 🫶