JavaScript-Leerzeichen minifizieren und Ersparnis messen
Dieser JavaScript-Minifizierer entfernt Zeilen- und Blockkommentare sowie Formatierungsleerraum, den die Laufzeit nicht benötigt.
Im Browser ausführen – kostenlos
Strings, Template-Literale, reguläre Ausdrücke, Operatoren und Bezeichnergrenzen bleiben ebenso erhalten wie Zeilenumbrüche, die die automatische Semikolon-Einfügung beeinflussen können. Das Ergebnis enthält den kompakten Quelltext, die ursprüngliche und minifizierte UTF-8-Bytezahl sowie die prozentuale Ersparnis. So können Sie Code zuverlässig verkleinern, ohne Bezeichner umzubenennen, Code umzuschreiben, Abhängigkeiten zu installieren, das Netzwerk zu nutzen oder eine vollständige Bundling-Pipeline einzuführen.
Verdichten Sie Quelltext ohne Programmänderung
Diese Fähigkeit erfüllt eine klar begrenzte Aufgabe: Kommentare entfernen und unbedeutenden Leerraum reduzieren. Sie benennt keine Variablen um, faltet keine Konstanten, ordnet keine Ausdrücke neu, ändert keine Eigenschaften und übersetzt moderne Syntax nicht in ältere Versionen. Dadurch lässt sich das Ergebnis leicht prüfen und mit dem Original vergleichen. Senden Sie JavaScript im Feld javascript oder über die Aliase code beziehungsweise text. Sie erhalten kompakten Code und genaue UTF-8-Messwerte. Der Scanner erkennt Strings, Template-Literale und reguläre Ausdrücke, bevor er Kommentarmarker auswertet. Eine URL in einem String oder ein Schrägstrich in einem regulären Ausdruck bleibt deshalb als Programmdatum erhalten. Leerzeichen werden nur dann wieder eingesetzt, wenn benachbarte Tokens sonst zu einem anderen Token verschmelzen könnten. Bezeichner bleiben getrennt, während die Formatierung um Kommas, Klammern und die meisten Operatoren entfällt. Dies ist Verdichtung, keine Verschleierung: Namen und Struktur bleiben erkennbar; weder ein verborgener Netzwerkdienst noch ein nichtdeterministisches Modell wirkt mit.
Bewahren Sie Tokens und bedeutende Zeilenumbrüche
Leerraum ist in JavaScript häufig optional, aber nicht immer bedeutungslos. Zusammengefügte Bezeichnerzeichen können einen neuen Namen bilden; zwei Pluszeichen können zum Inkrementoperator werden; ein entfernter Umbruch nach return, throw, break, continue oder yield kann die automatische Semikolon-Einfügung verändern. Daher zerlegt der Minifizierer die Eingabe in Tokens und entscheidet an jeder Grenze, statt einen globalen regulären Ausdruck anzuwenden. Er bewahrt relevante Umbrüche und trennt mehrdeutige Operatoren. Kommentare werden nur außerhalb von Strings, Template-Literalen und regulären Ausdrücken erkannt. Im selben Durchlauf prüft er die Trennzeichen: Jede schließende runde, eckige oder geschweifte Klammer muss zur letzten Öffnung passen. Ein einzelnes oder falsch verschachteltes Zeichen führt zu einem Fehler für ungültige Eingaben statt zu zweifelhaftem Code. Nicht abgeschlossene Kommentare, Strings, Templates und reguläre Ausdrücke schlagen ebenfalls eindeutig fehl. Die Prüfung ist strukturell und kein vollständiger JavaScript-Parser; verwenden Sie syntaktisch gültigen Code für eine konservative Verdichtung.
Messen Sie die Ersparnis und integrieren Sie das Ergebnis
Die Antwort meldet original_bytes und minified_bytes in UTF-8. Diese Größe ist für Dateien maßgeblich, die über HTTP übertragen oder als Webressourcen gespeichert werden. reduction_percent wird auf zwei Dezimalstellen gerundet und vereinfacht Prüfungen, Dashboards und Versionsberichte. Da der Algorithmus deterministisch ist, liefert dieselbe Eingabe stets denselben Code und dieselben Werte. Eine Pipeline kann generierten Code senden, das zurückgegebene Feld javascript in den Artefaktordner schreiben und eine Mindestersparnis verlangen, ohne ein Minifiziererpaket zu installieren. Dokumentationssysteme können eingebettete Beispiele verdichten; schlanke Deployments können handgeschriebene Hilfsskripte ohne Bundling oder Umbenennung verkleinern. Die Fähigkeit kostet $0.002 pro API-Anfrage, während der Browserpfad dieselbe reine Implementierung nutzen kann. Führen Sie vor der Produktion wie nach jeder Quelltextverarbeitung die Tests des resultierenden Programms aus. Das Werkzeug schützt lexikalische Grenzen und Klammerpaare; Tests bleiben jedoch die stärkste Bestätigung für ungewöhnliche Grammatikkontexte.
Anwendungsfälle
Generierte Browserressource verdichten
Entfernen Sie Kommentare und Formatierung vor der Veröffentlichung und behalten Sie lesbare Bezeichner für die Diagnose.
Eigenständige Hilfsskripte verkleinern
Reduzieren Sie die Übertragungsgröße eines kleinen Skripts ohne Bundler, Namensverkürzung oder schwere Abhängigkeitsstufe.
Quelltext-Ersparnis dokumentieren
Erfassen Sie ursprüngliche und minifizierte Bytes sowie den Prozentsatz in einem Releasebericht oder einer Qualitätsprüfung.
Häufige Fragen
Was entfernt diese Fähigkeit?
Sie entfernt Zeilen- und Blockkommentare sowie Leerraum, der nicht zur Trennung von Tokens oder wichtigen Semikolon-Grenzen benötigt wird.
Benennt sie Variablen um oder verändert Ausdrücke?
Nein. Sie verdichtet nur konservativ auf lexikalischer Ebene, ohne Namen, Konstanten, Reihenfolge oder Syntax umzuschreiben.
Wie wird die Größenreduktion berechnet?
Beide Größen werden als UTF-8-Bytes gemessen. Der Prozentsatz ist die Differenz geteilt durch die Originalgröße, gerundet auf zwei Dezimalstellen.
Was geschieht bei unausgeglichenen Klammern?
Die Anfrage schlägt als ungültige Eingabe fehl, wenn runde, eckige oder geschweifte Klammern fehlen oder falsch verschachtelt sind.
Werden Kommentarzeichen in Strings entfernt?
Nein. Strings, Template-Literale und reguläre Ausdrücke gelten als Literale; ihre internen Schrägstriche bleiben erhalten.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Eingaben, die die Validierung nicht bestehen, liefern Fehler statt minifiziertem Code.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev2/minify-js \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"javascript":"function add(a, b) {\n // Return the sum\n return a + b;\n}\n"}'const res = await fetch("https://api.kit.forhosting.com/dev2/minify-js", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"javascript": "function add(a, b) {\n // Return the sum\n return a + b;\n}\n"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/minify-js",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"javascript": "function add(a, b) {\n // Return the sum\n return a + b;\n}\n"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/minify-js", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"javascript":"function add(a, b) {\\n // Return the sum\\n return a + b;\\n}\\n"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"javascript":"function add(a, b) {\n // Return the sum\n return a + b;\n}\n"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/minify-js", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"javascript": "function add(a, b) {\n // Return the sum\n return a + b;\n}\n"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.minify_js",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |