JavaScript minifier
Illessz be JavaScriptet, és a Terser összezsugorítja: eltávolítja a halott kódot, lerövidíti a neveket, és eltünteti a szóközöket. A szintaktikai hibák pontos sorra és oszlopra mutatnak.
A böngésződben futNincs regisztrációNincs feltöltés
Hogyan használd: JavaScript minifier
- Illeszd be a JavaScript kódot, vagy nyiss meg egy
.jsfájlt. - Válassz opciókat: a Nevek rövidítése lerövidíti a lokális változókat, a Tömörítés kisebb, egyenértékű kódra írja át, az ES modul pedig engedélyezi a legfelső szintű
import/exportutasításokat. - Válaszd ki azt az ECMAScript célt, amelyet a felhasználóid böngészői támogatnak. Az ES2020 minden örökzöld böngészőben biztonságos.
- Nézd meg a kimenet alatt a méretet, a megtakarítást és a gzip-becslést.
- Másold ki a minifikált kódot, vagy töltsd le
output.min.jsnéven.
Mit csinál egy JavaScript minifier?
A minifikálás kisebbé teszi a JavaScriptet anélkül, hogy megváltoztatná a működését. Ez az eszköz a Terser könyvtárat használja, amely a webpack, a Vite és a Rollup mögött álló minifier, és háromféle változtatást végez:
- Szóközök és kommentek eltávolítása: a behúzásokra, sortörésekre és kommentekre a JavaScript-motornak nincs szüksége.
- Mangling: a lokális változók és függvényparaméterek nevei, például a
subtotal, egybetűssé válnak. A globális nevek és az objektumtulajdonságok érintetlenek maradnak, így a nyilvános API-d tovább működik. - Tömörítés: a konstans kifejezések kiértékelődnek, az elérhetetlen kód kikerül, az
ifutasításokból ternáris operátorok lesznek, a rövid függvények pedig beágyazódnak.
Minify vagy gzip: mindkettő kell?
Igen. A gzip és a Brotli az átvitel során az ismétlődő bájtmintákat tömöríti, a minifikálás viszont olyan bájtokat távolít el, amelyeket a böngészőnek egyébként le kellene töltenie, elemeznie és lefordítania. Egy tipikus script a minifikálástól 40–60%-kal, majd a gzip-től további 60–70%-kal lesz kisebb. Az itt látható gzip méret jó becslés arra, amit a szervered ténylegesen elküld.
Licenckommentek megtartása
Sok nyílt forráskódú licenc (MIT, BSD, Apache) előírja, hogy a szerzői jogi megjegyzés a kóddal maradjon. Megállapodás szerint a /*! kezdetű, illetve a @license vagy @preserve jelölést tartalmazó kommentek megmaradnak, ha a licenckommentek megtartása be van kapcsolva.
Mikor ne minifikálj kézzel?
Ha a projekted már használ bundlert, bízd rá a production buildek minifikálását és a hibakereséshez szükséges source mapek generálását. Az online minifier ideális egyszeri scriptekhez, CMS-be vagy tag managerbe szánt kódrészletekhez, bookmarkletekhez, és ahhoz, hogy megnézd, mennyire lehet kicsi egy kódrészlet.
Gyakran ismételt kérdések
Feltöltődik a kódom egy szerverre?
Elronthatja a minifikálás a kódomat?
Function.prototype.toString() eredményére vagy az eval révén lokális változónevekre támaszkodik, érintett lehet; ilyenkor kapcsold ki a Nevek rövidítése opciót.