Comment minifier du CSS et du JavaScript

Réduisez feuilles de style et scripts en supprimant commentaires, espaces et code redondant : passez chaque fichier dans un minifieur, comparez les tailles, testez le résultat et servez-le compressé.

Dernière vérification :

AdSense Placeholder
Slot: header_reference_page
Sur cette page

Étapes

  1. Conservez la source lisible

    Ne modifiez jamais un fichier minifié. Gardez les fichiers d'origine dans votre projet et considérez les minifiés comme un résultat de build que vous pouvez recréer à tout moment.

  2. Minifiez le CSS

    Collez la feuille de style dans le minifieur CSS (moteur csso) et copiez le résultat. Les commentaires disparaissent, les propriétés abrégées sont fusionnées, les couleurs raccourcies et les règles de même sélecteur combinées.

  3. Minifiez le JavaScript

    Collez le script dans le minifieur JavaScript (moteur terser). La compression supprime le code mort et simplifie les expressions ; le raccourcissement des noms réduit les variables locales. Désactivez-le pour le code qui dépend des noms.

  4. Comparez les tailles

    Regardez l'économie annoncée par les outils pour chaque fichier. Les gains typiques sont de 20 à 60 pour cent avant compression, et plus pour un source très commenté.

  5. Testez le résultat

    Chargez la page avec les fichiers minifiés et surveillez la console du navigateur. Lancez vos vérifications habituelles, surtout autour des formulaires et de tout ce qui lit des noms de fonctions.

  6. Servez-le compressé et en cache

    Activez gzip ou Brotli sur le serveur et donnez aux fichiers de longues durées de cache, en changeant le nom du fichier quand le contenu change. Si vous chargez des fichiers depuis un CDN, protégez-les avec Comment ajouter l'intégrité des sous-ressources aux scripts et feuilles de style.

Ce dont vous avez besoin

Une feuille de style ou un script à réduire, et un moyen de tester la page ensuite.

Exemple

Les outils ci-dessus font tourner de vrais moteurs. Voici ce qu'ils produisent pour une minuscule feuille de style et un petit script.

CSS avant (127 caractères) et après (67) :

/* header */
.card {
  margin: 0px 0px 10px 0px;
  color: #ffffff;
  background-color: #FF0000;
}
.card {
  padding: 0.50em;
}
.card{margin:0 0 10px;color:#fff;background-color:red;padding:.5em}

JavaScript avant (161 caractères) et après (65) :

// add two numbers
function addNumbers(firstNumber, secondNumber) {
  const total = firstNumber + secondNumber;
  return total;
}
console.log(addNumbers(2, 3));
function addNumbers(d,e){return d+e}console.log(addNumbers(2,3));

Pièges courants

  • Ne minifiez pas puis ne modifiez pas à la main ; régénérez depuis la source.
  • Les cartes source (source maps) relient le code minifié à l'original dans le débogueur du navigateur ; générez-les avec un outil de build pour un travail de production.
  • Minifier des fichiers déjà minifiés n'apporte presque rien.
  • Le code qui utilise eval, Function.prototype.name ou des noms de propriétés sous forme de chaînes peut casser avec le raccourcissement des noms.

Essayez ces outils

Voir aussi

Questions fréquemment posées

Il ne devrait pas. Les minifieurs conservent le comportement, mais le raccourcissement des noms et la compression agressive peuvent révéler des bogues, par exemple dans du code qui dépend des noms de fonctions. Testez toujours les fichiers minifiés.

Non. Associez-le à la compression gzip ou Brotli et à la mise en cache ; la compression économise généralement plus que la minification, et les deux s'additionnent.

AdSense Placeholder
Slot: footer_leaderboard