0%
Le Déploiement des Applications React

Déploiement

Mise en production

10-15 min

Le Déploiement des Applications React

Le déploiement est la dernière étape du développement d’une application React. Nous allons explorer les différentes options de déploiement et les optimisations nécessaires.

Préparation au déploiement

Build de production

npm run build

Cette commande crée un dossier build contenant votre application optimisée pour la production.

Configuration des variables d’environnement

# .env.production
REACT_APP_API_URL=https://api.production.com
REACT_APP_ANALYTICS_ID=UA-XXXXXXXX-X

Plateformes de déploiement populaires

Netlify

  1. Installation de Netlify CLI :
npm install -g netlify-cli
  1. Déploiement :
netlify deploy
  1. Configuration (netlify.toml) :
[build]
  command = "npm run build"
  publish = "build"

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

Vercel

  1. Installation de Vercel CLI :
npm install -g vercel
  1. Déploiement :
vercel
  1. Configuration (vercel.json) :
{
  "version": 2,
  "builds": [
    {
      "src": "package.json",
      "use": "@vercel/static-build",
      "config": { "distDir": "build" }
    }
  ]
}

GitHub Pages

  1. Installation des dépendances :
npm install gh-pages --save-dev
  1. Configuration (package.json) :
{
  "homepage": "https://votre-username.github.io/votre-repo",
  "scripts": {
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build"
  }
}
  1. Déploiement :
npm run deploy

Optimisation des performances

Optimisation des images

// Utilisation de Next.js Image
import Image from 'next/image';

function OptimizedImage() {
  return (
    <Image
      src="/image.jpg"
      alt="Description"
      width={800}
      height={600}
      loading="lazy"
      quality={75}
    />
  );
}

Code splitting

// Import dynamique
const HeavyComponent = React.lazy(() => import('./HeavyComponent'));

function App() {
  return (
    <Suspense fallback={<div>Chargement...</div>}>
      <HeavyComponent />
    </Suspense>
  );
}

Optimisation des bundles

// webpack.config.js
module.exports = {
  optimization: {
    splitChunks: {
      chunks: 'all',
      minSize: 20000,
      maxSize: 244000,
      minChunks: 1,
      maxAsyncRequests: 30,
      maxInitialRequests: 30,
      cacheGroups: {
        defaultVendors: {
          test: /[\\/]node_modules[\\/]/,
          priority: -10,
          reuseExistingChunk: true,
        },
      },
    },
  },
};

Sécurité

Configuration HTTPS

# nginx.conf
server {
    listen 443 ssl;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    # ...
}

En-têtes de sécurité

// server.js
const helmet = require('helmet');

app.use(helmet());

Monitoring et Analytics

Intégration de Google Analytics

// analytics.js
import ReactGA from 'react-ga';

ReactGA.initialize('UA-XXXXXXXX-X');

function App() {
  useEffect(() => {
    ReactGA.pageview(window.location.pathname);
  }, []);
}

Monitoring des erreurs

// errorBoundary.js
class ErrorBoundary extends React.Component {
  componentDidCatch(error, errorInfo) {
    // Envoyer l'erreur à un service de monitoring
    logErrorToService(error, errorInfo);
  }

  render() {
    return this.props.children;
  }
}

Bonnes pratiques

  1. Performance :

    • Optimisez les images
    • Utilisez le code splitting
    • Minimisez les bundles
    • Mettez en cache les ressources
  2. Sécurité :

    • Utilisez HTTPS
    • Configurez les en-têtes de sécurité
    • Protégez les routes sensibles
    • Validez les entrées utilisateur
  3. Monitoring :

    • Surveillez les performances
    • Suivez les erreurs
    • Analysez le comportement utilisateur
    • Maintenez des logs

Exercices pratiques

  1. Déployez une application sur Netlify :

    • Configurez les variables d’environnement
    • Optimisez les performances
    • Mettez en place le monitoring
  2. Déployez une application sur Vercel :

    • Configurez le domaine personnalisé
    • Mettez en place le CI/CD
    • Optimisez le build
  3. Déployez une application sur GitHub Pages :

    • Configurez le routage
    • Optimisez les assets
    • Mettez en place les tests automatisés

Conclusion

Le déploiement est une étape cruciale dans le cycle de vie d’une application React. En suivant ces bonnes pratiques, vous pouvez assurer une mise en production réussie et maintenable.

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !