TW3 — Technologies du Web 3

⚡ Optimisation de la taille du bundle

La taille du bundle influence directement le temps de chargement initial et la réactivité perçue par les utilisateurs.

📘 Analyser la taille du bundle

Pour analyser la taille de votre bundle, plusieurs outils sont disponibles :

📘 Webpack Bundle Analyzer

npm install --save-dev webpack-bundle-analyzer

Dans votre configuration webpack :

const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;

module.exports = {
  plugins: [new BundleAnalyzerPlugin()],
};

📘 Next.js Bundle Analyzer

Pour Next.js, utilisez :

npm install --save-dev @next/bundle-analyzer

📘 Astuces pour réduire la taille

📘 1. Code splitting

Utilisez le chargement dynamique :

import dynamic from "next/dynamic";

const DynamicComponent = dynamic(() => import("../components/Heavy"));

📘 2. Tree shaking

Choisissez un import compatible avec l'élimination du code mort :

// ❌ Mauvais : importe le package CommonJS complet
import lodash from "lodash";

// ✅ Bon : version ESM mieux tree-shakable
import { map } from "lodash-es";

// ✅ Bon aussi : import ciblé par chemin
import mapByPath from "lodash/map";

Un import nommé depuis lodash (import { map } from "lodash") ne garantit pas le tree-shaking avec le package CommonJS standard.

📘 3. Compression des images

Utilisez des formats optimisés comme WebP :

import Image from "next/image";

export default function OptimizedImage() {
  return (
    <Image
      src="/image.webp"
      width={500}
      height={300}
      alt="Image optimisée"
    />
  );
}

📘 4. Minification des dépendances

Vérifiez régulièrement vos dépendances avec npm-check :

npx npm-check

🧪 Bonnes pratiques

  • Utilisez import() pour le code splitting.
  • Évitez les dépendances lourdes.
  • Optimisez les images et assets.
  • Mettez en place un budget de performance.
  • Surveillez régulièrement la taille du bundle.

📘 Outils recommandés

  • webpack-bundle-analyzer
  • source-map-explorer
  • bundlephobia.com
  • import-cost (extension VS Code)

En suivant ces conseils, vous pourrez maintenir une taille de bundle optimale et améliorer les performances de votre application.

Tooling

Terminez le quiz du chapitre pour le marquer comme complété.

Tableau de bord

On this page