# đŸȘŸ Installation sur Windows - Xpeditis ## ProblĂšme avec npm Workspaces sur Windows Sur Windows, les workspaces npm peuvent rencontrer des problĂšmes de symlinks (`EISDIR` error). Voici la solution. --- ## ✅ Solution : Installation SĂ©parĂ©e par App Au lieu d'utiliser `npm install` Ă  la racine, installez les dĂ©pendances dans chaque app sĂ©parĂ©ment. ### Étape 1 : Supprimer le node_modules racine (si existe) ```bash # Si node_modules existe Ă  la racine rm -rf node_modules ``` ### Étape 2 : Installer les dĂ©pendances Backend ```bash cd apps/backend npm install cd ../.. ``` **DurĂ©e** : 2-3 minutes **Packages installĂ©s** : ~50 packages NestJS, TypeORM, etc. ### Étape 3 : Installer les dĂ©pendances Frontend ```bash cd apps/frontend npm install cd ../.. ``` **DurĂ©e** : 2-3 minutes **Packages installĂ©s** : ~30 packages Next.js, React, Tailwind, etc. ### Étape 4 : Installer les dĂ©pendances racine (optionnel) ```bash npm install --no-workspaces ``` **Packages installĂ©s** : prettier, typescript (partagĂ©s) --- ## ✅ VĂ©rification de l'Installation ### VĂ©rifier Backend ```bash cd apps/backend # VĂ©rifier que node_modules existe ls node_modules # VĂ©rifier des packages clĂ©s ls node_modules/@nestjs ls node_modules/typeorm ls node_modules/pg # Essayer de dĂ©marrer npm run dev ``` **Attendu** : Le serveur dĂ©marre sur le port 4000 ### VĂ©rifier Frontend ```bash cd apps/frontend # VĂ©rifier que node_modules existe ls node_modules # VĂ©rifier des packages clĂ©s ls node_modules/next ls node_modules/react ls node_modules/tailwindcss # Essayer de dĂ©marrer npm run dev ``` **Attendu** : Le serveur dĂ©marre sur le port 3000 --- ## 🚀 DĂ©marrage AprĂšs Installation ### 1. DĂ©marrer l'infrastructure Docker ```bash docker-compose up -d ``` ### 2. Configurer l'environnement ```bash # Backend cp apps/backend/.env.example apps/backend/.env # Frontend cp apps/frontend/.env.example apps/frontend/.env ``` ### 3. DĂ©marrer le Backend ```bash cd apps/backend npm run dev ``` **URL** : http://localhost:4000/api/v1/health ### 4. DĂ©marrer le Frontend (nouveau terminal) ```bash cd apps/frontend npm run dev ``` **URL** : http://localhost:3000 --- ## 📝 Scripts ModifiĂ©s pour Windows Comme les workspaces ne fonctionnent pas, utilisez ces commandes : ### Backend ```bash # Au lieu de: npm run backend:dev cd apps/backend && npm run dev # Au lieu de: npm run backend:test cd apps/backend && npm test # Au lieu de: npm run backend:build cd apps/backend && npm run build ``` ### Frontend ```bash # Au lieu de: npm run frontend:dev cd apps/frontend && npm run dev # Au lieu de: npm run frontend:test cd apps/frontend && npm test # Au lieu de: npm run frontend:build cd apps/frontend && npm run build ``` ### Les deux en parallĂšle **Option 1** : Deux terminaux Terminal 1 : ```bash cd apps/backend npm run dev ``` Terminal 2 : ```bash cd apps/frontend npm run dev ``` **Option 2** : PowerShell avec Start-Process ```powershell # Backend Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd apps/backend; npm run dev" # Frontend Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd apps/frontend; npm run dev" ``` --- ## 🔧 Alternative : Utiliser pnpm ou yarn Si npm continue Ă  poser problĂšme, utilisez pnpm (meilleur support Windows) : ### Avec pnpm ```bash # Installer pnpm globalement npm install -g pnpm # Installer les dĂ©pendances pnpm install # DĂ©marrer backend pnpm --filter backend dev # DĂ©marrer frontend pnpm --filter frontend dev ``` ### Avec yarn ```bash # Installer yarn globalement npm install -g yarn # Installer les dĂ©pendances yarn install # DĂ©marrer backend yarn workspace backend dev # DĂ©marrer frontend yarn workspace frontend dev ``` --- ## ✅ Checklist d'Installation Windows - [ ] Docker Desktop installĂ© et dĂ©marrĂ© - [ ] Node.js v20+ installĂ© - [ ] `cd apps/backend && npm install` terminĂ© - [ ] `cd apps/frontend && npm install` terminĂ© - [ ] `docker-compose up -d` exĂ©cutĂ© - [ ] Containers PostgreSQL et Redis en cours d'exĂ©cution - [ ] `.env` files copiĂ©s - [ ] Backend dĂ©marre sur port 4000 - [ ] Frontend dĂ©marre sur port 3000 - [ ] Health endpoint rĂ©pond : http://localhost:4000/api/v1/health --- ## 🐛 DĂ©pannage Windows ### Erreur : EBUSY (resource busy or locked) **Cause** : Fichiers verrouillĂ©s par un processus Windows (antivirus, Windows Defender, etc.) **Solutions** : 1. Fermer VSCode et tous les terminals 2. DĂ©sactiver temporairement l'antivirus 3. Exclure le dossier `node_modules` de Windows Defender 4. RĂ©essayer l'installation ### Erreur : EISDIR (illegal operation on directory) **Cause** : Windows ne supporte pas bien les symlinks npm workspaces **Solution** : Utiliser l'installation sĂ©parĂ©e (cette page) ### Erreur : EPERM (operation not permitted) **Cause** : Permissions insuffisantes **Solutions** : 1. ExĂ©cuter PowerShell/CMD en tant qu'administrateur 2. Ou utiliser l'installation sĂ©parĂ©e (pas besoin d'admin) ### Backend ne dĂ©marre pas - "Cannot find module" **Cause** : node_modules manquant ou incomplet **Solution** : ```bash cd apps/backend rm -rf node_modules package-lock.json npm install ``` ### Frontend ne dĂ©marre pas - "Cannot find module 'next'" **Cause** : node_modules manquant ou incomplet **Solution** : ```bash cd apps/frontend rm -rf node_modules package-lock.json npm install ``` ### Frontend build fail - "EISDIR: illegal operation on directory, readlink" **Cause** : Next.js rencontre un problĂšme avec les symlinks sur Windows lors du build **Erreur complĂšte** : ``` Error: EISDIR: illegal operation on a directory, readlink 'D:\xpeditis2.0\apps\frontend\node_modules\next\dist\pages\_app.js' ``` **Solutions** : **Option 1** : Utiliser le mode dĂ©veloppement (recommandĂ© pour le dĂ©veloppement) ```bash cd apps/frontend npm run dev # Fonctionne sans problĂšme ``` **Option 2** : Utiliser WSL2 pour le build de production ```bash # Dans WSL2 cd /mnt/d/xpeditis2.0/apps/frontend npm run build # Fonctionne correctement ``` **Option 3** : Build depuis PowerShell avec mode dĂ©veloppeur activĂ© ```powershell # Activer le mode dĂ©veloppeur Windows (une seule fois) # ParamĂštres > Mise Ă  jour et sĂ©curitĂ© > Pour les dĂ©veloppeurs > Mode dĂ©veloppeur # Ensuite: cd apps/frontend npm run build ``` **Note** : Pour le dĂ©veloppement quotidien, utilisez `npm run dev` qui n'a pas ce problĂšme. Le build de production n'est nĂ©cessaire que pour le dĂ©ploiement. --- ## 💡 Recommandations pour Windows ### 1. Utiliser PowerShell Core (v7+) Plus moderne et meilleur support des outils Node.js : - [TĂ©lĂ©charger PowerShell](https://github.com/PowerShell/PowerShell) ### 2. Utiliser Windows Terminal Meilleure expĂ©rience terminal : - [TĂ©lĂ©charger Windows Terminal](https://aka.ms/terminal) ### 3. ConsidĂ©rer WSL2 (Windows Subsystem for Linux) Pour une expĂ©rience Linux native sur Windows : ```bash # Installer WSL2 wsl --install # Installer Ubuntu wsl --install -d Ubuntu # Utiliser WSL2 pour le dĂ©veloppement cd /mnt/d/xpeditis2.0 npm install # Fonctionne comme sur Linux ``` ### 4. Exclure node_modules de l'antivirus Pour amĂ©liorer les performances : **Windows Defender** : 1. ParamĂštres Windows > Mise Ă  jour et sĂ©curitĂ© > SĂ©curitĂ© Windows 2. Protection contre les virus et menaces > GĂ©rer les paramĂštres 3. Exclusions > Ajouter une exclusion > Dossier 4. Ajouter : `D:\xpeditis2.0\node_modules` 5. Ajouter : `D:\xpeditis2.0\apps\backend\node_modules` 6. Ajouter : `D:\xpeditis2.0\apps\frontend\node_modules` --- ## ✅ Installation RĂ©ussie ! Une fois les dĂ©pendances installĂ©es dans chaque app : ```bash # Backend cd apps/backend npm run dev # Visiter: http://localhost:4000/api/docs # Frontend (nouveau terminal) cd apps/frontend npm run dev # Visiter: http://localhost:3000 ``` **Tout fonctionne ? Excellent ! 🎉** Passez Ă  [NEXT-STEPS.md](NEXT-STEPS.md) pour commencer le dĂ©veloppement. --- ## 📞 Besoin d'Aide ? Si les problĂšmes persistent : 1. VĂ©rifier Node.js version : `node --version` (doit ĂȘtre v20+) 2. VĂ©rifier npm version : `npm --version` (doit ĂȘtre v10+) 3. Essayer avec pnpm : `npm install -g pnpm && pnpm install` 4. Utiliser WSL2 pour une expĂ©rience Linux 5. Consulter [INSTALLATION-STEPS.md](INSTALLATION-STEPS.md) --- *Xpeditis - Installation Windows* *Solution pour npm workspaces sur Windows*