Déploiement Vercel - Frontend App
Ce guide explique comment déployer l'application apps/frontend sur Vercel depuis ce monorepo Turborepo.
🚀 Configuration Vercel
1. Paramètres du projet Vercel
Lors de la création du projet sur Vercel, utilisez ces paramètres :
- Framework Preset: Next.js
- Root Directory:
apps/frontend - Build Command:
cd ../.. && pnpm turbo build --filter=my-v0-project - Install Command:
pnpm install - Output Directory:
.next(par défaut) - Node Version: 22.x
2. Variables d'environnement
Ajoutez ces variables d'environnement dans les paramètres Vercel :
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Database (si nécessaire)
DATABASE_URL=your_database_url
# Autres variables publiques Next.js
NEXT_PUBLIC_API_URL=your_api_url
3. Configuration automatique
Le fichier apps/frontend/vercel.json configure automatiquement :
- La commande de build avec Turbo
- Le framework Next.js
- Le répertoire de sortie
📦 Structure du monorepo
Automobile Business Center/
├── apps/
│ ├── frontend/ # ← Application déployée sur Vercel
│ │ ├── vercel.json # Configuration Vercel
│ │ ├── .npmrc # Configuration npm/pnpm
│ │ └── package.json
│ ├── admin-panel/
│ └── mobile-app/
├── packages/
│ ├── database/
│ └── ui/
├── turbo.json # Configuration Turborepo
├── pnpm-workspace.yaml
├── package.json # packageManager: pnpm@9.15.0
└── .npmrc # Configuration npm globale
🔧 Résolution des problèmes
Erreur: ERR_INVALID_THIS
Solution: Les fichiers .npmrc avec retry settings sont déjà configurés dans :
/(racine)/apps/frontend//apps/admin-panel/
Ces fichiers configurent :
- 5 tentatives de retry (au lieu de 2)
- Timeouts augmentés
- Configuration du registre npm
Erreur: "packageManager" field conflicts
Vérification: Assurez-vous qu'aucun sous-package n'a de champ packageManager différent.
# Vérifier tous les package.json
grep -r "packageManager" apps/ packages/
Seul le package.json racine devrait avoir :
{
"packageManager": "pnpm@9.15.0"
}
Erreur: Lockfile out of sync
Solution: Régénérer le lockfile localement et le pousser :
# À la racine du projet
rm -rf node_modules pnpm-lock.yaml
rm -rf apps/*/node_modules packages/*/node_modules
# Réinstaller avec pnpm 9
pnpm install
# Commit et push
git add pnpm-lock.yaml
git commit -m "Regenerate lockfile with pnpm 9.15.0"
git push origin master
Erreur: Build fails with workspace dependencies
Solution: Turbo build avec filter gère automatiquement les dépendances workspace.
Le build command pnpm turbo build --filter=my-v0-project :
- Build les packages
@refine-project/databaseet@refine-project/uid'abord - Puis build
apps/frontend
🎯 Commandes de test local
Avant de déployer, testez localement :
# Build avec Turbo (comme Vercel)
pnpm turbo build --filter=my-v0-project
# Ou build uniquement frontend
cd apps/frontend
pnpm build
# Démarrer en production
pnpm start
📝 Checklist avant déploiement
-
pnpm-lock.yamlest à jour et commité -
packageManagerest défini àpnpm@9.15.0dans le package.json racine - Aucun sous-package n'a de champ
packageManagerconflictuel - Les variables d'environnement sont configurées dans Vercel
- Le build local fonctionne :
pnpm turbo build --filter=my-v0-project - Les fichiers
.npmrcsont présents et commitées
🔄 Workflow de déploiement
-
Développement local
pnpm dev -
Test du build
pnpm turbo build --filter=my-v0-project -
Commit et push
git add .
git commit -m "Your changes"
git push origin master -
Déploiement automatique
- Vercel détecte le push
- Exécute
pnpm installavec les settings.npmrc - Build avec Turbo
- Déploie automatiquement
📚 Ressources
🆘 Support
Si vous rencontrez des problèmes :
- Vérifiez les logs de build Vercel
- Consultez
docs/NPM_PNPM_CONFIG.mdpour les problèmes npm/pnpm - Testez le build localement avec la même commande que Vercel
- Vérifiez que toutes les variables d'environnement sont définies