Merged
Conversation
- TypeScript 4.9→5.9, Turbo v1→v2, Prettier v2→v3 - Husky v8→v9, lint-staged v13→v15 - oclif v2→v4, update bin/run and bin/dev entry points - Node engines >=18→>=20, TS target ES2019→ES2021 - GH Actions: checkout/setup-node v3→v4, pnpm/action-setup v4 - Add packageManager field, ESLint allow _ unused vars - Scope update-readmes to CLI only (website build broken)
- Replace validate-npm-package-name w/ inline validator (Node module builtin import fails in browser/webpack) - Bump @chakra-ui/react 2.3.6→^2.10.9 (CJS/ESM interop fix for @zag-js/focus-visible on Node 22) - Revert update-readmes filter workaround
- add --router flag (app|pages, default app) - rename slots: app→pagesApp, document→pagesDocument, nextConfigJs→nextConfig - add appLayout slot type for App Router (layout.tsx + providers.tsx) - create App Router generators (layout, providers, page) - conditional file generation based on router flag - bump create-next-app 13.2.3→15, use native --use-yarn/--app flags - fix addContent step to respect condition field on addFiles - add appLayout.imports to css-modules, sass, tailwind-css plugins - add app/ dir to tailwind content paths
- TS incremental build cache, not source
- tailwind v3→v4: CSS-based config, @tailwindcss/postcss, drop autoprefixer - chakra v2→v3: createSystem API, next-themes, drop icons/framer-motion deps - mantine v6→v8: drop Emotion, PostCSS-based, ColorSchemeScript - mui v5→v7: AppRouterCacheProvider, cssVariables theme - styled-components v5→v6: built-in TS, App Router registry - emotion: add App Router CacheProvider + useServerInsertedHTML - framer-motion→motion ^12 (package renamed) - react-query ^4→^5 + App Router provider slots - plausible: add App Router provider slots - prettier ^2→^3, eslint-config-prettier ^8→^10 - husky v9 + lint-staged ^16, drop mrm - react-icons ^4→^5, prisma ^4→^6, vercel ^30→^50, netlify ^15→^24 - github-actions: checkout@v4, setup-node@v4, pnpm/action-setup@v4 - next.config.js→next.config.ts (ESM, typed) - add postcssConfig slot to Plugin type for PostCSS plugin merging - remove Mantine-requires-Emotion, Chakra-requires-Framer-Motion validations
- Fix oclif v4 single-command CLI config (strategy: single) - Fix CNA 15 Turbopack interactive prompt (add --turbopack) - Fix LandingPageTemplate missing "use client" directive - Fix Emotion jsxImportSource breaking Server Components - Fix Emotion cache.inserted type (remove unnecessary any) - Update flag descriptions (Chakra, Mantine) - Remove obsolete invalid-input cases (mantineWithoutEmotion, chakraWithoutFramerMotion) - Add --prisma and --github-actions to all-flags tests - Add pages-router E2E tests - Add Mantine-without-Emotion E2E test
- Chakra UI v2 → Mantine v8, Emotion → PostCSS - Pages Router → App Router (app/layout.tsx, providers.tsx) - Next.js 13 → 15, React 18 → 19 - Add --router selector to form, update validation rules - Remove Mantine/Emotion + Chakra/Framer Motion constraints - Replace Chakra icons w/ react-icons - next.config.js → next.config.ts - Update generated command to use @latest + --router flag
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- fixes Vercel deploy using node 18
- CNA 15->16, add --yes flag to skip prompts - ESLint v8->v9 flat config (eslint.config.mjs) - Lint script: next lint -> eslint - Generate eslint.config.mjs w/ conditional prettier - Remove prettier .eslintrc.json modification step - Update removeOfficialCNAContent for CNA 16 files - Website: Next.js 16, ESLint 9, fix lint errors - Fix Prettier formatting across CLI package
- CLI: ESLint ^8→^10 + flat config, typescript-eslint unified pkg - CLI: Jest ^29→^30, next devDep ^15→^16, @types/node ^20→^25 - CLI: drop @typescript-eslint/eslint-plugin + parser - Website: @types/node ^22→^25 - Fix unused catch vars (empty catch clauses)
- "type": "module", module: nodenext, rewriteRelativeImportExtensions - .ts extensions on all relative imports (299 changes) - bin/run + bin/dev: require() → import(), __dirname → import.meta.url - __dirname → import.meta.dirname in scripts - endent → aldent (ESM-native, zero deps) - execa ^5 → ^9 (named export, ResultPromise type) - chalk ^4 → ^5 (ESM-only) - Jest → Vitest (native ESM + .ts support) - Drop ts-jest, @jest/globals, jest, ts-node - Fix lodash CJS import for ESM compat
- vitest list --json outputs test cases, not files - each JSON line became a matrix entry (354 > 256 limit) - --filesOnly gives one file path per line like jest --listTests
- vitest 4 removed --poolOptions.* CLI flags - --no-fileParallelism achieves same sequential execution
- require.resolve not available in ESM - use import.meta.resolve + fileURLToPath instead
- class-names.ts: [string, any] -> [string, unknown] - LandingPageTemplate: add eslint-disable for window.confetti
- .ts -> .tsx for JSX component files - .module.css.ts -> .module.css for CSS modules - providers.ts -> providers.tsx in layout
- .tsx extensions need allowImportingTsExtensions (Pages Router) - extensionless imports work with both bundler and nodenext resolution
- enable verbatimModuleSyntax in tsconfig - 58 imports changed to use import type - required for bin/dev which runs .ts via Node type stripping
- CI: "" still passes as set env var - use delete to fully remove CI and GITHUB_ACTIONS
- pnpm detects CI via ci-info (many env vars beyond CI) - explicit flag is more reliable than env var deletion
- CLI uses plain `pnpm install` (no frozen-lockfile) - --no-frozen-lockfile in perform-final-checks handles CI
- Chakra+MUI both export ThemeProvider, causing dup identifier - alias MUI's to MuiThemeProvider in both router slots
- providerAfterImports is module scope, TS doesn't narrow const across function boundaries - providerLogic places it inside component where narrowing works
- Pages Router tsconfig lacks allowImportingTsExtensions - extensionless imports work for both routers
- add @types/react devDep to prevent pnpm auto-install-peers from corrupting version to ^6.0.0 - deduplicate import lines in providers.tsx and _app.tsx generators (emotion+react-query both import React)
- add prettier-plugin-organize-imports as tmpDependency - pass --plugin flag in formatProject step - reorder steps: format before uninstall tmp deps - revert manual Set dedup (plugin handles it)
- Generate .prettierignore with .next and lock file patterns - Simplify format scripts (prettier uses .prettierignore by default) - Fixes pnpm-lock.yaml format check failure after tmpDep uninstall
91 tasks
- Already covered by .gitignore which prettier reads by default
- Always generated regardless of --prettier flag - Needed by CLI's formatProject step which always runs
- Move .prettierignore back to prettier plugin (user-facing config) - E2E: create temp .prettierignore for lock files if none exists
- Move hooks+early return into own component to avoid violating rules-of-hooks when other plugins add hooks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #271