JavaScript-Minifier
Minifizieren Sie JavaScript mit terser – Komprimierung, Namens-Mangling, ECMAScript-Zielversion – und sehen Sie die Größe vor und nach gzip.
Eingabe
Ergebnis
Das Ergebnis erscheint hier.terser ist der Minifier, den webpack im Produktionsmodus standardmäßig ausführt, und derjenige, den Vite und Rollup anbieten, wenn Sie die kleinstmögliche Ausgabe wollen. Fügen Sie ein Skript ein, um es auf dieselbe Weise komprimieren zu lassen: toter Code und redundante Ausdrücke entfernt, lokale Namen verkürzt, Leerraum gestrichen. Das Ergebnis zeigt die Ersparnis in Bytes und, sofern der Browser CompressionStream unterstützt, die gzip-Größe vorher und nachher – die Zahl, die tatsächlich über das Netz geht.
So arbeitet es
- Die Komprimierung schreibt den Code in zwei Durchläufen um – Konstanten inlinen, unerreichbare Zweige entfernen, Ausdrücke falten –, und das Mangling verkürzt die Namen lokaler Variablen und Parameter.
- Namen auf oberster Ebene bleiben unangetastet, sofern Sie die Eingabe nicht als ES-Modul markieren, weil die Globals eines klassischen Skripts von anderen Skripten auf der Seite verwendet werden können.
- Kommentare, die mit /*! beginnen oder @license bzw. @preserve enthalten, bleiben erhalten, wie es die meisten Lizenzen verlangen.
- Die ECMAScript-Version bestimmt, was terser ausgeben darf – ES5 bekommt nie Arrow Functions –, neuere Syntax, die Sie selbst geschrieben haben, wird aber nicht heruntertranspiliert.
Wohin Ihre Daten gehen
Nirgendwohin. Dieses Werkzeug läuft vollständig in Ihrem Browser: Der eingefügte Text wird von der Seite verarbeitet und weder an einen Server übertragen noch protokolliert.
Dieses Tool ist kostenlos und braucht kein Konto. Die Ergebnisse existieren nur in Ihrer geöffneten Seite und werden nirgends gespeichert.
Was es kostet
Dieses Werkzeug ist kostenlos, ohne Anmeldung und ohne Punkte.
Häufige Fragen
- Warum ist die Ersparnis mit gzip kleiner als ohne?
- Weil gzip bereits einen Großteil derselben Redundanz entfernt: Wiederholter Leerraum und lange, wiederkehrende Bezeichner lassen sich sehr gut komprimieren. Eine große Ersparnis bei den Rohdaten schrumpft deshalb, sobald beide Seiten mit gzip komprimiert sind. Die kleinere Zahl ist trotzdem echt, und sie ist die richtige, um die Übertragungsgröße abzuschätzen.
- Kann Minifizierung meinen Code kaputt machen?
- Die Standardtransformationen von terser sind so ausgelegt, dass sie für Standard-JavaScript sicher sind. Kaputt geht Code, der zur Laufzeit von Funktions- oder Klassennamen abhängt (Function.prototype.name, manche Dependency-Injection-Setups) oder seinen eigenen Quelltext über toString() liest. Schalten Sie das Mangling aus, um festzustellen, ob die Namen das Problem sind.
- Was bewirkt das Entfernen von console-Aufrufen?
- Es entfernt console.log, console.warn und jeden anderen console.*-Aufruf aus der komprimierten Ausgabe. Praktisch für ein Produktions-Bundle; schädlich, wenn Sie sich auf console.error verlassen, um Fehler aus den Browsern der Nutzer zu melden. Es greift nur, wenn die Komprimierung eingeschaltet ist.
- Kann es TypeScript oder JSX minifizieren?
- Nein, terser liest nur JavaScript und meldet die erste Typannotation oder das erste JSX-Tag als Syntaxfehler. Kompilieren Sie TypeScript und JSX zuerst mit tsc, esbuild oder Babel und minifizieren Sie dann das erzeugte JavaScript.
Das Open Source dahinter
Dieses Werkzeug läuft auf terser/terser, veröffentlicht unter BSD-2-Clause. Wer dasselbe Verhalten im eigenen Programm braucht, greift zu dieser Bibliothek.
terser/terserAuch bekannt als
- JavaScript Minifier
- JS minify online
- terser online
- JavaScript minifizieren
- JavaScript komprimieren
- uglify js online