Over deze tool
JavaScript-minificatie verkleint de omvang van de broncode door onnodige tekens te verwijderen en (met de juiste minifiers) de naam van lokale variabelen te hernoemen naar kortere namen. De eerste categorie – witruimte en commentaarverwijdering – is eenvoudig en zonder risico. De tweede – het hernoemen van variabelen – vereist inzicht in de reikwijdteregels en is wat productieminifiers zoals Terser en esbuild het beste doen.
Deze tool richt zich op veilige verkleining: het verwijderen van opmerkingen, het samenvouwen van witruimte, het verwijderen van overbodige puntkomma's en het inkorten van voor de hand liggende patronen. Het hernoemen van variabelen is conservatief: alleen lokale variabelen in een duidelijk bereik worden aangeraakt, en namen waarnaar extern wordt verwezen, worden met rust gelaten. Het resultaat is functioneel identiek aan de bron.
Voor minificatie op productieniveau begrijpen speciale tools (Terser, esbuild, swc) het volledige ECMAScript-scopemodel en produceren ze aanzienlijk kleinere output. Deze tool is bedoeld voor snelle minificatie aan de browserzijde wanneer er geen volledige build-installatie beschikbaar is.
Waarom JavaScript verkleinen
JavaScript-bundels zijn doorgaans de grootste afzonderlijke bron op een moderne webpagina. Minificatie levert routinematig een verkleining van 30-60% op ten opzichte van de niet-verkleinde bron. Gecombineerd met gzip of Brotli wordt de reductie iets kleiner, maar de combinatie bespaart nog steeds meetbare bytes – vooral voor gebruikers met langzame verbindingen.
Sneller JavaScript betekent ook snellere Time to Interactive. Kleinere scripts worden sneller gedownload, sneller geparseerd en sneller uitgevoerd. Voor sites waar TTI de bouncepercentages en de SEO-ranking beïnvloedt, is minificatie een van de goedkoopste beschikbare winsten.
Technische details
De minifier tokeniseert JavaScript met behulp van een parser die de ECMAScript-syntaxis respecteert. Commentaar (enkelregelig en meerregelig) wordt verwijderd, behalve licentiecommentaar gemarkeerd met /*! voorvoegsel. Witruimte wordt samengevouwen, behalve waar dit syntactisch vereist is (tussen ID's, na trefwoorden).
Conservatief hernoemen van variabelen verkort lokale variabelen in eenvoudige bereiken. Globale namen, exportnamen en geïmporteerde namen worden niet hernoemd – dat zou externe verwijzingen verbreken. Voor diepgaande hernoeming gebruikt u Terser of esbuild met de juiste modulebewuste analyse.
Randgevallen: automatische puntkomma-invoeging (ASI) betekent dat de minifier in sommige contexten nieuwe regels moet behouden om te voorkomen dat het programmagedrag verandert. Sjabloonliterals, regex-literals en JSX (als de invoer deze bevat) blijven juist behouden omdat de inhoud ervan mogelijk niet veilig kan worden gecomprimeerd.
Veelgestelde vragen
- Verandert minificatie de manier waarop mijn code werkt?
- Nee. Met minificatie worden witruimte en opmerkingen verwijderd, die geen invloed hebben op de uitvoering. Door variabelen in te korten (mangelen) worden lokale variabelen hernoemd, maar blijft het gedrag behouden. Globale variabelen en geëxporteerde namen blijven intact.
- Moet ik de ontwikkeling of productie verkleinen?
- Gebruik alleen geminimaliseerde code in de productie. Bewaar tijdens de ontwikkeling de originele leesbare code. De meeste bouwtools (Webpack, Vite, esbuild) verwerken de verkleining automatisch als onderdeel van het productiebouwproces.
- Wat is het verschil tussen minificatie en verduistering?
- Minificatie verkleint de grootte terwijl de code functioneel leesbaar blijft als deze wordt geformatteerd. Door verduistering wordt code opzettelijk moeilijk te begrijpen (tekenreekscodering, afvlakking van de besturingsstroom). Deze tool richt zich op het verkleinen van de grootte, niet op verduistering.
- Hoeveel maatverkleining moet ik verwachten?
- Normaal gesproken 30-60% vóór gzip. Goed becommentarieerde code met lange namen van variabelen zorgt voor de grootste reducties. Gecombineerd met gzip-compressie zijn JavaScript-bestanden vaak 80-90% kleiner dan de originele bron.
- Wordt mijn code geüpload naar een server?
- Nee. De minifier werkt in uw browser.
- Hoeveel kleiner zal mijn JavaScript zijn?
- Meestal 30-60% reductie. Code met veel variabelen en lange ID's comprimeert meer; expressie-zware code comprimeert minder.
- Moet ik met de hand verkleinen?
- Nooit. Zorg voor leesbaar JavaScript in de broncode. Voer minificatie uit als bouwstap of als onderdeel van de implementatie.
- Werkt het op TypeScript?
- TypeScript moet eerst naar JavaScript worden gecompileerd met behulp van tsc of esbuild. Eenmaal gecompileerd, kan het resulterende JavaScript worden verkleind.