JavaScript minifikátor

Vložte JavaScript a zmenšete ho pomocí Terseru: mrtvý kód se odstraní, názvy se zkrátí a bílé znaky zmizí. Syntaktické chyby ukazují přesný řádek a sloupec.

Běží v prohlížečiBez registraceNic se neodesílá

Minifikovaný výstup

Jak používat: JavaScript minifikátor

  1. Vložte svůj JavaScript nebo otevřete soubor .js.
  2. Zvolte možnosti: Zkracovat názvy zkrátí lokální proměnné, Komprimovat přepíše kód na menší ekvivalent, ES modul povolí import/export na nejvyšší úrovni.
  3. Zvolte cílovou verzi ECMAScriptu, kterou podporují prohlížeče vašich uživatelů. ES2020 je bezpečný pro všechny průběžně aktualizované prohlížeče.
  4. Pod výstupem zkontrolujte velikost, úsporu a odhad po gzipu.
  5. Zkopírujte minifikovaný kód nebo ho stáhněte jako output.min.js.

Co dělá JavaScript minifikátor?

Minifikace zmenší JavaScript, aniž by změnila jeho chování. Tento nástroj používá Terser, minifikátor za webpackem, Vite a Rollupem, a provádí tři druhy změn:

  • Odstranění bílých znaků a komentářů: odsazení, nové řádky a komentáře JavaScriptový engine nepotřebuje.
  • Mangling: názvy lokálních proměnných a parametrů funkcí jako subtotal se změní na jednotlivá písmena. Globální názvy a vlastnosti objektů zůstanou netknuté, takže vaše veřejné API dál funguje.
  • Komprese: konstantní výrazy se vyhodnotí, nedosažitelný kód se odstraní, příkazy if se změní na ternární operátory a krátké funkce se vloží inline.

Minifikace vs. gzip: potřebujete obojí?

Ano. Gzip a Brotli komprimují opakující se vzory bajtů při přenosu, zatímco minifikace odstraní bajty, které by prohlížeč jinak musel stáhnout, rozparsovat a zkompilovat. Typický skript se minifikací zmenší o 40–60 % a gzipem pak o dalších 60–70 %. Zde zobrazená velikost po gzipu dobře odhaduje, co váš server skutečně pošle.

Zachování licenčních komentářů

Mnoho open-source licencí (MIT, BSD, Apache) vyžaduje, aby upozornění na autorská práva zůstalo u kódu. Podle konvence se komentáře začínající /*! nebo obsahující @license či @preserve zachovají, když je zapnuto Zachovat licenční komentáře.

Kdy neminifikovat ručně

Pokud váš projekt už používá bundler, nechte ho minifikovat produkční buildy a generovat source mapy pro ladění. Online minifikátor se hodí pro jednorázové skripty, úryvky pro CMS nebo správce tagů, bookmarklety a pro zjištění, jak moc se dá kus kódu zmenšit.

Časté dotazy

Nahrává se můj kód na server?
Ne. Terser běží v kartě vašeho prohlížeče, takže proprietární kód nikdy neopustí váš počítač.
Může minifikace rozbít můj kód?
Terser používá jen transformace, které u platného JavaScriptu zachovávají stejné chování. Kód, který spoléhá na Function.prototype.toString() nebo na názvy lokálních proměnných přes eval, může být ovlivněn; v takovém případě vypněte Zkracovat názvy.
Podporuje moderní syntaxi jako async/await, třídy a optional chaining?
Ano. Terser parsuje syntaxi ES2022+. Nastavení cíle určuje jen to, jakou syntaxi smí používat výstup; novější funkce nepřevádí (netranspiluje) na starší.
Jaký je rozdíl mezi minify a uglify?
Znamenají totéž. UglifyJS byl klasický nástroj; Terser je jeho udržovaný fork s plnou podporou ES2015+.

Související nástroje