Capítulo 93 de 108

Next.js 15 + React 19

Core Idea

Historical/troubleshooting guide (marked outdated, superseded by full React 19 + Tailwind v4 support in latest) for resolving npm peer-dependency errors when using shadcn/ui with React 19 RC.

Key Concepts

  • Peer dependency error: npm error ERESOLVE occurs when a package's peerDependencies doesn't yet list React 19; pnpm/bun only show a silent warning, npm hard-fails.
  • --force: Overrides all dependency conflicts, forces install.
  • --legacy-peer-deps: Skips strict peer checks, allows unmet peer deps without erroring.
  • npx shadcn@latest init -d: CLI detects React 19 + npm and prompts which flag (--force or --legacy-peer-deps) to use for every install.

Code Examples

npm i <package> --force
npm i <package> --legacy-peer-deps
# or downgrade:
npm i react@18 react-dom@18
  • O que demonstra: as três saídas possíveis para o erro ERESOLVE em npm com React 19.

Reference Tables

SolutionEffect
--forceIgnores/overrides dependency conflicts
--legacy-peer-depsSkips strict peer checks
Downgrade to React 18Compatible with packages lacking React 19 peer support

Anti-patterns

  • Skipping app testing after forced install: --force/--legacy-peer-deps can mask real incompatibilities; always test thoroughly after.
  • recharts + React 19: needs a react-is override in package.json ("react-is": "^19.0.0-rc-...") plus npm install --legacy-peer-deps, or it silently breaks.

Key Takeaways

  1. pnpm, bun and yarn need no flags for React 19; this issue is npm-specific.
  2. This page is explicitly flagged outdated — current guidance lives under Tailwind v4 / installation docs.
  3. recharts requires an overrides["react-is"] pin matching the exact React 19 RC version being used.

Connects To

  • tailwind-v4 (ch094): the doc that supersedes this guide with full, non-legacy React 19 support.