Lorsqu'un site Web est en production, il est important de diminuer le plus possible le nombre de requêtes HTTP, donc le nombre de fichiers que le site Web utilise, ainsi que la taille de ceux-ci.
Une des technique pour y arriver est de combiner (en anglais : bundle) tous les fichiers .js en un seul. Le même travail sera accompli pour les fichiers .css.
En plus de cette combinaison, on pourra les minifier, c'est-à-dire les passer dans un algorithme qui supprime les commentaires, réorganise le code et retire les caractères non essentiels comme les sauts de ligne. Cette opération ne modifie en rien les fonctionnalités du code.
Il est possible de combiner et minifier les fichiers de différentes façons :
Dans tous les cas, il est d'usage d'ajouter .min avant l'extension du fichier pour indiquer que son code est minifié. Par exemple, le fichier styles.css deviendra styles.min.css.
Il existe des tonnes d'outils en ligne qui permettent de combiner et/ou de minifier le JavaScript et/ou le CSS.
Certains peuvent être appelés par programmation alors que d'autres doivent être utilisés manuellement.
En voici quelques-uns :
Ici aussi, on retrouve plusieurs outils, par exemple :
Si vous optez pour l'automatisation, vous aurez plus de travail à réaliser pour installer et configurer les outils requis. Par contre, l'opération de combinaison et de minification sera par la suite très facile à réaliser.
Je vous propose quelques procédures pour configurer différents outils dans PhpStorm.
Terser est une branche de UglifyJS qui supporte la version ES6 de JavaScript, aussi appelée ECMAScript 2015 ou JavaScript 6.
Terser peut combiner et minifier vos fichiers JavaScript directement dans PhpStorm :
Sous Mac, ceci ajoutera le dossier /usr/local/lib/node_modules.
Sous Windows, le chemin sera plutôt C:\Users\MonNom\AppData\Roaming\npm\node_modules.
sudo npm install terser -g
pwd
Par exemple, dans un projet PHP vanille :
cd js
Dans une extension WordPress (changez les / pour des \ sous Windows) :
cd wp-content/plugins/monextension/js
terser fichier1.js fichier2.js fichier3.js --compress --mangle --output app.min.js
Il est possible de configurer l'extension File Watchers dans PhpStorm afin de lancer automatiquement une action dès qu'un fichier est modifié. Ici, je vous montre comment minifier automatiquement un fichier JavaScript.
sudo npm install terser -g
Si vous souhaitez arrêter la minification automatique, rendez-vous dans le menu
/ (Windows) ou / (Mac) puis / puis enlevez le crochet devant .CSSO fait un travail semblable à Terser mais pour les fichiers CSS. Malheureusement, il n'offre pas la possibilité de combiner plusieurs fichiers. Il ne fait que la minification d'un seul fichier.
Pour l'utiliser, reprenez les étapes pour Terser mais cette fois, installez CSSO :
sudo npm install -g csso-cli
Placez-vous dans le dossier qui contient les feuilles de style à combiner et minifier puis lancez la commande :
csso fichier.css --output fichier.min.css
Les File Watchers de PhpStorm travaillent bien avec CSSO.
Reprenez les étapes pour Terser mais cette fois, après avoir cliqué sur le + pour ajouter un File Watcher, choisissez
.Toutes les valeurs entrées par défaut sont correctes. Il ne vous reste plus qu'à modifier vos feuilles de style, chacune sera automatiquement minifiée à chaque modification que vous y apportez.
« The complete best practices for minifying CSS ». LogRocket. https://blog.logrocket.com/complete-best-practices-minifying-css/
« terser/terser ». GitHub. https://github.com/terser/terser
« Minifying JavaScript ». JetBrains. https://www.jetbrains.com/help/phpstorm/minifying-javascript.html
« Minifying CSS ». JetBrains. https://www.jetbrains.com/help/phpstorm/compressing-css.html
« Minify CSS with PhpStorm automatically ». speich.net. https://www.speich.net/articles/en/2019/12/30/automatically-minify-css-with-phpstorm/
▼Publicité