DT Dev Tools

JavaScript Minifier — JavaScript-minifier

Minify JavaScript met Terser in je browser: comprimeer code, verkort namen, verwijder console-aanroepen en vergelijk de bestandsgrootte voor en na.

🔒 Draait volledig in uw browser — niets wordt geüpload

Drop a .js file here or click to browse — or paste code below

Before: –After: –Saved: –
Advertisement

Hoe JavaScript-minificatie werkt

Minificatie maakt JavaScript kleiner zonder te veranderen wat het doet. Deze tool gebruikt Terser, een volwassen minifier die je code omzet in een abstracte syntaxboom, die boom bewerkt en de code daarna opnieuw uitschrijft zonder overbodige witruimte en opmerkingen. De stap compress past tientallen optimalisaties toe: onbereikbare code en ongebruikte variabelen worden verwijderd, constanten worden ingevoegd, opeenvolgende variabeledeclaraties worden samengevoegd, if-statements worden waar mogelijk omgezet in kortere voorwaardelijke expressies en eenvoudige constante expressies worden vooraf berekend. Daarna hernoemt de stap mangle lokale variabelen, parameters en functienamen naar één of twee letters. Eigenschapsnamen en globale variabelen blijven ongemoeid, zodat het publieke gedrag van je code hetzelfde blijft.

De groottelabels tonen de UTF-8-grootte in bytes van invoer en uitvoer en het bespaarde percentage. Doorsnee handgeschreven code wordt 40–70% kleiner; code die al compact is of vooral uit lange strings bestaat, krimpt minder. Houd er rekening mee dat servers JavaScript meestal nog eens comprimeren met gzip of Brotli. De werkelijke besparing bij de overdracht is dus kleiner dan het ruwe getal, maar geminificeerde code wordt nog steeds sneller geparsed en kost minder bandbreedte.

De juiste opties kiezen

Het ECMAScript target bepaalt welke syntaxis Terser in de uitvoer mag gebruiken. Met ES2020 kan het arrow functions, optional chaining en andere moderne vormen genereren; met ES5 voegt het geen nieuwere syntaxis toe, al transpileert het moderne code die je zelf hebt geschreven niet – gebruik daarvoor een tool als Babel of esbuild. Keep console.* behoudt logging, handig voor staging-builds. Schakel ES module in voor bestanden die import/export gebruiken; dan kunnen ook namen op het hoogste niveau worden verkort, omdat de scope van een module privé is.

Privé door ontwerp

De minifier wordt pas geladen wanneer dat nodig is en draait lokaal, dus je broncode wordt nooit geüpload. Daardoor is hij geschikt voor snelle eenmalige klussen, zoals het verkleinen van een inline script, een bookmarklet of een snippet voor een tagmanager van derden. Meldt Terser een syntaxfout, dan bevat de melding de regel en kolom zodat je de invoer kunt corrigeren. Houd minificatie voor productiebundels in je build-pipeline, zodat het resultaat reproduceerbaar is, en genereer source maps om te debuggen.

Hoe te gebruiken

  1. Voeg je code toePlak JavaScript in het invoerveld of sleep een .js-bestand naar het dropgebied.
  2. Kies optiesZet compressie, het verkorten van namen, het verwijderen van console, modulemodus en het ECMAScript-target aan of uit.
  3. MinifyKlik op Minify JavaScript om de uitvoer te zien met de grootte vooraf, achteraf en het bespaarde percentage.
  4. Kopiëren of downloadenKopieer de geminificeerde code of download die als .min.js-bestand.

Veelgestelde vragen

Welke minifier wordt gebruikt?
Terser, de standaard JavaScript-minifier in webpack en een optionele minifier in Vite en Rollup. Hij draait volledig in je browser.
Wat is het verschil tussen compress en mangle?
Compress herschrijft de code in een kortere, gelijkwaardige vorm: dode code verdwijnt, constanten worden vooraf berekend en expressies worden vereenvoudigd. Mangle hernoemt lokale variabelen en functieparameters naar korte namen. Beide zijn veilig voor normale code en kunnen los van elkaar worden in- of uitgeschakeld.
Waarom zijn mijn console.log-aanroepen verdwenen?
Standaard verwijdert de compressor console.*-aanroepen, wat gebruikelijk is voor productiebundels. Vink Keep console.* aan om ze te behouden.
Wanneer moet ik ES module inschakelen?
Schakel het in als je bestand import- of export-statements gebruikt. In modulemodus kan Terser ook namen op het hoogste niveau verkorten; dat is veilig voor modules, maar kan klassieke scripts die globale variabelen beschikbaar maken breken.
Advertisement