c't 3/2017
S. 128
Know-how
JavaScript-Module
Aufmacherbild

Modul.js

Formate und Werkzeuge für JavaScript-Module

Modulsysteme organisieren Code übersichtlich und kümmern sich um Abhängigkeiten von Bibliotheken. Davon profitieren inzwischen auch JavaScript-Entwickler – sofern sie sich im Dschungel der Formate und Werkzeuge zurechtfinden.

Modernes JavaScript hat nicht mehr viel Ähnlichkeit mit der kleinen Skriptsprache zum simplen Austauschen von Bildern oder Öffnen von Pop-ups, als die sie mal konzipiert war. Nur beim Einbinden von externem Code ist noch deutlich, aus welch einfachen Verhältnissen die Sprache stammt: Während alle „erwachsenen“ Programmiersprachen irgendwelche import()-, include()- oder require()-Anweisungen kennen, äußert sich JavaScript-Modularität bis heute meistens in Form lieblos aneinandergereihter <script>-Tags im HTML.

Für dieses Problem gibt es nicht eine Lösung, sondern, wie im JavaScript-Umfeld typisch, eine ganze Familienpackung davon. Und was da alles an Begriffen und Namen zur Auswahl steht: Bundler, Loader, IIFE, CommonJS, AMD, UMD, ES6-nativ, RequireJS, SystemJS, Webpack, Browserify, Rollup.js … ist nicht Bower auch sowas Ähnliches? Und was war mit npm? Höchste Zeit also, in das Modul-Chaos etwas Ordnung zu bringen.