Tagoptimisation

[Webpack Encore] Optimiser vos bundles CSS avec PurgeCSS et JS et le tree shaking

Testé fonctionnel Webpack Encore v1.1.2 (tournant sous Webpack v5.34.0).

Utiliser PurgeCSS avec Webpack Encore

Source: blog de PHP Roberto – Integrating Purgecss with Symfony Encore (version PDF: phproberto.com-Integrating Purgecss with Symfony Encore).

Le tree shaking avec Webpack Encore

Quelques ressources en ligne:

Oui, le tree shaking est activé par défaut en mode « production » dans Webpack Encore. C’est juste que la documentation officielle sur symfony.com oublie de le mentionner (grrr…)!

Vous pouvez effectuer le test qui est décrit ici (aka « le tree shaking dans Webpack Encore expliqué en 30 secondes ») pour vous en assurer.

Pour exemple, si vous avez les deux fichiers suivants:

Exécuter la commande yarn encore dev devrait générer quelque chose de similaire à ceci:

Cependant, en exécutant la commande yarn encore production le commentaire /* unused harmony export testB */ présent avec la précédente commande sera pris en compte par UglifyJs qui va en conséquence supprimer l’export en relation lors de la phase de minification. Dans ce cas, on ne devrait pas retrouver la chaîne de caractère « Test B » dans le fichier généré:

Activer les commentaires /* unused harmony export */ en développement avec le paramètre config.optimization.usedExports = true;

Ceci vous permettra de vérifier avec du code humainement lisible quels sont les parties de votre code qui ne sont pas exploitées et qui seront supprimées dans le bundle minifié de production.

Tout à la fin de votre fichier webpack.config.js:

Vous pouvez tout-à-fait laisser cette config activée. Elle ne portera pas préjudice au poids final de votre build de production.

[javaScript] console.time et console.timeEnd pour logguer les performances d’affichage du code JS

Demo: console.time et console.timeEnd pour logguer les performances d’affichage du code JS.

Résultats du test en exécutant à plusieurs reprises ce code:

getTableColumnsAmount01: 1.489013671875ms
(index):36 getTableColumnsAmount02: 0.277099609375ms
(index):32 getTableColumnsAmount01: 1.7880859375ms
(index):36 getTableColumnsAmount02: 0.88916015625ms
(index):32 getTableColumnsAmount01: 1.0322265625ms
(index):36 getTableColumnsAmount02: 0.44189453125ms
(index):32 getTableColumnsAmount01: 0.926025390625ms
(index):36 getTableColumnsAmount02: 0.203125ms
(index):32 getTableColumnsAmount01: 1.050048828125ms
(index):36 getTableColumnsAmount02: 0.3740234375ms

© 2021 devfrontend.info

Theme by Anders NorénUp ↑