codelynx.dev
🇫🇷🇬🇧

Retour 21/01/2025

Comment utiliser les fichiers .env en React et Next.js

Écris par Melvyn Malherbe le 21/01/2025


Les fichiers .env sont essentiels pour gérer les variables d'environnement dans tes applications web. Dans cet article, je vais t'expliquer comment ils fonctionnent et comment les utiliser efficacement avec React et Next.js.

C'est quoi un fichier .env ?

Un fichier .env est un fichier de configuration qui stocke des variables d'environnement. Ces variables sont des informations sensibles ou des configurations qui changent selon l'environnement où ton application s'exécute.

Voici à quoi ressemble un fichier .env typique :

BASH
API_KEY=abc123xyz789
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
STRIPE_SECRET_KEY=sk_test_123456789

Ne commit jamais tes fichiers .env dans Git ! Ajoute-les toujours dans ton .gitignore.

Que mettre dans un fichier .env ?

Les fichiers .env sont parfaits pour stocker :

  1. Des clés d'API :
BASH
STRIPE_PUBLIC_KEY=pk_test_123
GOOGLE_MAPS_API_KEY=AIza123456
  1. Des URLs de services :
BASH
API_URL=https://api.monservice.com
WEBSOCKET_URL=wss://ws.monservice.com
  1. Des configurations d'environnement :
BASH
NODE_ENV=development
DEBUG=true

En React, les variables d'environnement doivent commencer par REACT_APP_ pour être accessibles dans ton application.

Exemple en React :

BASH
# ❌ Ne fonctionnera pas
API_KEY=123456

# ✅ Fonctionnera
REACT_APP_API_KEY=123456

En Next.js, cette restriction n'existe pas :

BASH
# ✅ Fonctionne directement en Next.js
API_KEY=123456

Les différents types de fichiers .env

Il existe plusieurs variantes de fichiers .env pour différents contextes :

  1. .env - Fichier de base, valeurs par défaut
  2. .env.local - Surcharge locale, non commité
  3. .env.development - Pour l'environnement de développement
  4. .env.production - Pour l'environnement de production
  5. .env.test - Pour l'environnement de test

L'ordre de priorité est important :

BASH
.env.local       # Plus haute priorité
.env.development # (en mode development)
.env.production  # (en mode production)
.env             # Plus basse priorité

.env.local est toujours ignoré en mode test pour assurer que tous les tests utilisent les mêmes variables d'environnement.

Comment ça fonctionne avec Vercel et autres plateformes ?

Les plateformes de déploiement comme Vercel gèrent intelligemment les variables d'environnement :

  1. Vercel :
  • Utilise .env.production pour les déploiements en production
  • Permet de définir des variables dans l'interface web
  • Supporte les variables chiffrées
BASH
# .env.production
NEXT_PUBLIC_API_URL=https://api.production.com

# .env.development
NEXT_PUBLIC_API_URL=http://localhost:3000
  1. Netlify :
  • Utilise un système similaire
  • Configure les variables via l'interface admin
  • Supporte les variables par branche

Les variables préfixées par NEXT_PUBLIC_ en Next.js ou REACT_APP_ en React seront exposées au client. Fais attention à ne pas exposer de données sensibles !

Bonnes pratiques

Voici quelques conseils pour bien gérer tes variables d'environnement :

  1. Crée un fichier .env.example :
BASH
# .env.example
API_KEY=your_api_key_here
DATABASE_URL=your_database_url_here
  1. Utilise des types différents selon l'environnement :
BASH
# .env.development
STRIPE_KEY=sk_test_123

# .env.production
STRIPE_KEY=sk_live_456
  1. Documente tes variables :
BASH
# API Keys
STRIPE_KEY=sk_test_123      # Clé Stripe pour les paiements
SENDGRID_KEY=SG.123        # Clé SendGrid pour les emails

# URLs
API_URL=http://localhost:3000  # URL de l'API backend

Pense à documenter toutes les variables requises dans ton README pour faciliter l'installation du projet par d'autres développeurs.

Tu peux maintenant gérer proprement les variables d'environnement dans tes applications React et Next.js ! Si tu veux approfondir tes connaissances, je te conseille de lire :

BeginReact

Cours React gratuit

Accède à des exercices, des vidéos et bien plus sur React dans la formation "BeginReact" 👇