Die JavaScript-Sammelbibliothek jQuery bietet zahlreiche Module zur Funktionserweiterung. Allerdings werden viele davon nicht in jedem Projekt benötigt, was die Ladezeiten unnötig verlängern kann. Zur Verbesserung der Performance können überflüssige Module mithilfe des JavaScript Task Runners Grunt entfernt werden. Durch den Ausschluss nicht benötigter Module lässt sich z.B. jQuery 3.6.0.min um rund 30% verkleinern, was sowohl die Ladezeit der Website als auch den Speicherbedarf im Browser reduziert.
Zurzeit erlaubt jQuery den Ausschluss folgender Module:
- Ajax: Ermöglicht das Abrufen von Daten ohne vollständiges Neuladen der Seite.
- Deprecated: Enthält Funktionen, die in zukünftigen Versionen entfernt werden sollen.
- CSS: Unterstützt die Manipulation von CSS-Eigenschaften.
- Event Alias: Bietet Kurzbefehle für die Behandlung von DOM-Ereignissen.
- Dimensions: Ermöglicht das Abrufen von Elementabmessungen (Breite, Höhe).
- Effects: Umfasst visuelle Effekte wie Ein- und Ausblenden.
- Offset: Berechnet die Position eines Elements relativ zum Dokument.
$ mkdir jquery-build
$ cd jquery-build/
$ git clone https://github.com/jquery/jquery.git
$ cd jquery/
$ git checkout <branch>
Ein Wechsel der jQuery Version ist nachträglich möglich mit:
$ git switch [<options>] <branch>
$ npm install
Falls npm install
bei idealTree:lib: sill idealTree buildDeps
hängen bleibt, liegt dies unter Umständen an Problemen mit IPv6. In dem Fall kann die Deaktivierung von IPv6 das Problem beheben. Folgende Befehle können in diesem Fall helfen:
$ 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
Um z.B. das Ajax Modul zu entfernen wird Grunt wie folgt aufgerufen:
$ grunt custom:-ajax
Es können mehrere Module durch Komma getrennt entfernt werden:
$ grunt custom:-ajax,-effects,-css,-deprecated,-event-alias,-dimensions,-effects,-offset