La bibliothèque JavaScript jQuery propose de nombreux modules pour étendre les fonctionnalités. Cependant, beaucoup d’entre eux ne sont pas nécessaires dans chaque projet, ce qui peut prolonger inutilement les temps de chargement. Pour améliorer les performances, les modules inutiles peuvent être supprimés à l’aide du task runner JavaScript Grunt. En excluant les modules inutiles, jQuery 3.6.0.min peut être réduit de environ 30%, ce qui réduit à la fois le temps de chargement du site Web et l’utilisation de la mémoire dans le navigateur.
Actuellement, jQuery permet l’exclusion des modules suivants :
- Ajax : Permet la récupération de données sans recharger la page.
- Deprecated : Contient des fonctions qui seront supprimées dans les futures versions.
- CSS : Prend en charge la manipulation des propriétés CSS.
- Event Alias : Fournit des raccourcis pour gérer les événements DOM.
- Dimensions : Permet d’obtenir les dimensions des éléments (largeur, hauteur).
- Effects : Inclut des effets visuels tels que l’apparition et la disparition.
- Offset : Calcule la position d’un élément par rapport au document.
$ mkdir jquery-build
$ cd jquery-build/
$ git clone https://github.com/jquery/jquery.git
$ cd jquery/
$ git checkout <branch>
Le changement de version de jQuery est possible plus tard avec :
$ git switch [<options>] <branch>
$ npm install
Si npm install
se bloque sur idealTree:lib: sill idealTree buildDeps
, cela peut être dû à des problèmes avec IPv6. Dans ce cas, la désactivation de IPv6 peut résoudre le problème. Les commandes suivantes peuvent être utiles :
$ npm cache clear --force
$ npm config set registry http://registry.npmjs.org/
# sysctl -w net.ipv6.conf.all.disable_ipv6=1
# sysctl -w net.ipv6.conf.default.disable_ipv6=1
Pour supprimer le module Ajax, Grunt est invoqué de la manière suivante :
$ grunt custom:-ajax
Plusieurs modules peuvent être supprimés en les séparant par des virgules :
$ grunt custom:-ajax,-effects,-css,-deprecated,-event-alias,-dimensions,-effects,-offset