Supprimer les Modules Inutiles de jQuery

Personnaliser et réduire jQuery à l'aide du *task runner* Grunt.

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.

Grunt

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