- Build de production généré (
npm run build) - Dossier
dist/contenant les fichiers optimisés - Compte sur la plateforme de déploiement choisie
# Nettoyer les builds précédents
npm run clean
# Construire pour la production
npm run build
# Vérifier le contenu du dossier dist/
ls -la dist/# Preview du build de production
npm run preview
# Ou servir avec un serveur local
npm run serve- Aller sur netlify.com
- Se connecter avec GitHub
- Glisser-déposer le dossier
dist/sur la zone de déploiement - L'URL sera générée automatiquement
- Connecter le repository GitHub
- Configurer le build :
- Build command:
npm run build - Publish directory:
dist - Node version:
18ou20
- Build command:
- Déployer automatiquement à chaque push
- Aller sur vercel.com
- Importer le projet depuis GitHub
- Configuration automatique détectée (Vite + React)
- Déployer en un clic
- Créer
.github/workflows/deploy.yml:
name: Deploy to GitHub Pages
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm ci
- run: npm run build
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist- Aller dans Settings > Pages
- Source: Deploy from a branch
- Branch:
gh-pagesoumain - Folder:
/ (root)ou/docs
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
# Compression Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
# Cache des assets statiques
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
</IfModule>server {
listen 80;
server_name tarmaq.ch www.tarmaq.ch;
root /var/www/tarmaq/dist;
index index.html;
# Gzip compression
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
# Cache des assets statiques
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# SPA routing
location / {
try_files $uri $uri/ /index.html;
}
}Créer .env.production :
VITE_APP_ENV=production
VITE_API_URL=https://api.tarmaq.ch
VITE_ANALYTICS_ID=your-analytics-id- Configurer le domaine personnalisé
- Activer HTTPS/SSL
- Configurer les redirections www → non-www
- Google Analytics
- Sentry pour les erreurs
- Uptime monitoring
- Page d'accueil se charge correctement
- Navigation fonctionne
- Images et assets se chargent
- Responsive design sur mobile/tablet
- Performance (Lighthouse score > 90)
- Accessibilité (contraste, navigation clavier)
- Console sans erreurs
# Performance
lighthouse https://tarmaq.ch
# Responsive
# Utiliser les outils de développement du navigateur
# Accessibilité
# Extensions: axe, WAVE, etc.# Vérifier la version de Node
node --version # Doit être 18+
# Nettoyer et réinstaller
rm -rf node_modules package-lock.json
npm install
npm run build- Vérifier les chemins dans
vite.config.js - S'assurer que les images sont dans
src/assets/ - Vérifier la configuration du serveur web
- Configurer le serveur pour rediriger vers
index.html - Vérifier les règles de réécriture Apache/Nginx
- Activer la compression Gzip
- Configurer le cache des assets
- Optimiser les images (WebP, compression)
# Mettre à jour les dépendances
npm update
# Vérifier les vulnérabilités
npm audit
# Rebuilder et redéployer
npm run build- Vérifier les logs d'erreur
- Surveiller les performances
- Tester régulièrement l'accessibilité
Tarmaq - Déploiement professionnel pour une expérience utilisateur optimale 🚀