fix: resolve React version conflict for Vercel deployment

Fixed dependency resolution error that was preventing Vercel builds
from completing successfully.

## Problem
Vercel build failed with:
```
npm error ERESOLVE unable to resolve dependency tree
npm error Could not resolve dependency:
npm error peer react@"^18.2.0 || 19.0.0-rc-66855b96-20241106" from next@15.0.3
```

React 19 stable (19.2.0) was being resolved, but Next.js 15.0.3 only
supports React 18.2.0 or specific React 19 RC versions.

## Solution

### 1. Downgraded React to 18.2.0 (Stable)
- Changed react from ^19.0.0-rc.0 → ^18.2.0
- Changed react-dom from ^19.0.0-rc.0 → ^18.2.0
- React 18.2.0 is fully stable and compatible with Next.js 15.0.3

### 2. Added .npmrc Configuration
- Configured npm for optimal Vercel builds
- Disabled legacy-peer-deps (not needed with correct versions)
- Enabled auto-install-peers for smooth dependency resolution
- Performance optimizations for CI/CD environment

### 3. Added vercel.json Configuration
- Optimized build command for monorepo structure
- Configured environment variable references
- Set preferred region (iad1 - Washington DC)
- Framework detection for Next.js

## Files Changed
- apps/web/package.json - React version downgrade
- .npmrc - npm configuration for Vercel
- apps/web/vercel.json - Vercel deployment config

## Testing
Build should now complete successfully on Vercel with:
- npm install 
- npm run build 
- Next.js production build 

## Notes
- React 18.2.0 is the recommended stable version for Next.js 15
- All shadcn/ui components are compatible with React 18
- No breaking changes in application code required
- When Next.js 16 releases, we can upgrade to React 19 stable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude 2025-10-24 14:55:30 +00:00
parent 9a8fcf76cb
commit e9fc673b3c
No known key found for this signature in database
3 changed files with 24 additions and 2 deletions

9
wan-pwa/.npmrc Normal file
View File

@ -0,0 +1,9 @@
# Vercel build configuration
legacy-peer-deps=false
strict-peer-dependencies=false
auto-install-peers=true
# Performance
prefer-offline=true
progress=false
loglevel=error

View File

@ -26,8 +26,8 @@
"lucide-react": "^0.454.0",
"next": "15.0.3",
"next-pwa": "^5.6.0",
"react": "^19.0.0-rc.0",
"react-dom": "^19.0.0-rc.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hook-form": "^7.53.2",
"sonner": "^1.7.1",
"tailwind-merge": "^2.5.4",

View File

@ -0,0 +1,13 @@
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"buildCommand": "cd ../.. && npm install && npm run build --filter=@wan-pwa/web",
"framework": "nextjs",
"installCommand": "npm install",
"regions": ["iad1"],
"env": {
"NEXT_PUBLIC_SUPABASE_URL": "@supabase-url",
"NEXT_PUBLIC_SUPABASE_ANON_KEY": "@supabase-anon-key",
"NEXT_PUBLIC_API_URL": "@api-url",
"NEXT_PUBLIC_APP_URL": "@app-url"
}
}