1unitedpower: Best practice für JS-Bibliotheken

Beitrag lesen

ES6? Fehlanzeige. Mit ES6 Modulen geschah, was Randall Munroe in seiner Weisheit vor 10 Jahren zeichnete: Standards proliferation

Ich bin zugegeben etwas raus aus dem aktuellen JavaScript-Geschehen, aber da möchte ich trotzdem widersprechen. EcmaScript Module genießen massiven Rückhalt aus der Community, darunter befinden sich diverse Schwergewichte. Allen voran wäre natürlich das Standard-Komittee zu nennen, das auch den Rest des Sprachstandards verwaltet. Browser-Hersteller unterstützen EcmaScript-Module inzwischen auch nativ. Microsoft bentuzt die selbe Syntax für TypeScript, das sich auch immer größerer Beliebtheit erfreut. Node.js pusht ebenfalls ES Module. Gefühlt ist das auch heute schon der Weg, der sich der größten Beliebtheit erfreut. Ich habe aber leider keine belastbaren Zahlen finden können.

Das schlimmste an ES6 Modulen ist, dass man nicht abfragen kann, ob man exportieren darf. Abfragen kann man (via imports.meta) zwar noch, aber das export-Statement ist kein Statement. Es ist eine Deklaration. Wenn diese Deklaration in einem if oder try/catch auftaucht, bricht das Script mit einem Error ab. Wenn sie auftaucht und das Script nicht mit type="module" geladen wird, bricht das Script mit einem Error ab.

Ob das nun Vor- oder Nachteile sind, darüber lässt sich hervorragend streiten. Der erste Teil klingt so, als wäre er durch "dynamische Imports" gelöst. Davon abgesehen sind dynamische Imports natürlich ein extrem guter Weg sich ins eigene Knie zu schießen. Der Teil über type="module" klingt für mich nach keinem größeren Problem. Die Fehlermeldung sorgt doch dafür, dass der Defekt frühzeitig auffällt und behoben werden kann.