mirror of
https://github.com/cloudflare/vinext.git
synced 2026-05-09 08:25:34 +02:00
[PR #406] [CLOSED] feat: add create-vinext-app scaffolding CLI #549
Labels
No labels
enhancement
enhancement
good first issue
help wanted
nextjs-tracking
nextjs-tracking
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/vinext#549
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/cloudflare/vinext/pull/406
Author: @Divkix
Created: 3/10/2026
Status: ❌ Closed
Base:
main← Head:feat/create-vinext-app📝 Commits (10+)
bf46d29feat: add create-vinext-app scaffolding CLI4b73bc3fix(create-vinext-app): use vinext entry instead of missing worker/index.ts in app-router template9b700cefix(create-vinext-app): extract basename from absolute paths on Windows82f4cfdfix(vinext): pre-bundle React CJS packages for Cloudflare worker environments6a54993ci(create-vinext-app): add pages-router template to integration test matrixaed831efix(create-vinext-app): handle "." project name and clean up validatione3d3255fix(create-vinext-app): address PR review feedback12e6bbffix(vinext): restore React CJS pre-bundling for Cloudflare worker environments2a0664cstyle(vinext): apply oxfmt formatting2fff1a3Merge branch 'cloudflare:main' into feat/create-vinext-app📊 Changes
42 files changed (+2317 additions, -24 deletions)
View changed files
📝
.agents/skills/migrate-to-vinext/SKILL.md(+10 -0)📝
.agents/skills/migrate-to-vinext/references/compatibility.md(+1 -1)📝
.github/workflows/ci.yml(+57 -0)📝
.github/workflows/publish.yml(+12 -2)📝
AGENTS.md(+27 -17)📝
CONTRIBUTING.md(+17 -0)📝
README.md(+12 -3)➕
packages/create-vinext-app/package.json(+39 -0)➕
packages/create-vinext-app/src/index.ts(+238 -0)➕
packages/create-vinext-app/src/install.ts(+25 -0)➕
packages/create-vinext-app/src/prompts.ts(+52 -0)➕
packages/create-vinext-app/src/scaffold.ts(+115 -0)➕
packages/create-vinext-app/src/validate.ts(+120 -0)➕
packages/create-vinext-app/templates/app-router/_gitignore(+4 -0)➕
packages/create-vinext-app/templates/app-router/app/api/hello/route.ts(+5 -0)➕
packages/create-vinext-app/templates/app-router/app/layout.tsx(+12 -0)➕
packages/create-vinext-app/templates/app-router/app/page.tsx(+17 -0)➕
packages/create-vinext-app/templates/app-router/package.json.tmpl(+24 -0)➕
packages/create-vinext-app/templates/app-router/tsconfig.json(+13 -0)➕
packages/create-vinext-app/templates/app-router/vite.config.ts.tmpl(+15 -0)...and 22 more files
📄 Description
Summary
Closes #407
Adds
packages/create-vinext-app/— a standalone CLI fornpm create vinext-app@latestthat scaffolds new vinext projects targeting Cloudflare Workers with a single command.Previously, starting a new vinext project required
npm create next-app@latest→vinext init→ manually creatingwrangler.jsonc,worker/index.ts, and installing extra deps (8-12 manual steps). This reduces it to one command.@vitejs/plugin-rsc) and Pages Router (with worker entry)@clack/promptswith--yesflag for CI/non-interactive usagenpm_config_user_agent(works with npm/pnpm/yarn/bun).tmplvariable substitution for{{PROJECT_NAME}}and{{WORKER_NAME}}Before merging: npm setup required
Test plan
pnpm --filter create-vinext-app test— 102/102 tests passpnpm run build— both packages buildpnpm run lint && pnpm run fmt:check && pnpm run typecheck— all cleancreate-vinext-appjob passes on ubuntu + windows🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.