DT Dev Tools

JavaScript Minifier — JavaScript-minifierare

Minifiera JavaScript med Terser i webbläsaren: komprimera kod, förkorta namn, ta bort console-anrop och jämför filstorleken före och efter.

🔒 Körs helt i din webbläsare — ingenting laddas upp

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

Before: –After: –Saved: –
Advertisement

Så fungerar minifiering av JavaScript

Minifiering gör JavaScript mindre utan att ändra vad koden gör. Verktyget använder Terser, en beprövad minifierare som tolkar din kod till ett abstrakt syntaxträd, omvandlar det och skriver ut koden igen utan onödiga blanksteg och kommentarer. Steget compress tillämpar dussintals optimeringar: det tar bort kod som aldrig kan nås och oanvända variabler, bäddar in konstanter, slår ihop efterföljande variabeldeklarationer, gör om if-satser till kortare villkorsuttryck där det går och räknar ut enkla konstanta uttryck i förväg. Därefter byter steget mangle namn på lokala variabler, parametrar och funktionsnamn till en eller två bokstäver. Egenskapsnamn och globala variabler lämnas orörda, så kodens publika beteende förblir detsamma.

Storleksmärkena visar UTF-8-storleken i byte för in- och utdata samt hur många procent som sparats. Vanlig handskriven kod krymper med 40–70 %; kod som redan är kompakt eller domineras av långa strängar krymper mindre. Tänk på att servrar oftast komprimerar JavaScript igen med gzip eller Brotli, så den verkliga besparingen vid överföringen är mindre än råsiffran, men minifierad kod tolkas ändå snabbare och kräver mindre bandbredd.

Välja rätt alternativ

ECMAScript target talar om för Terser vilken syntax som får användas i utdata. Med ES2020 kan den skapa pilfunktioner, optional chaining och andra moderna konstruktioner; med ES5 undviker den att införa nyare syntax, men den transpilerar inte modern kod som du själv har skrivit – använd ett verktyg som Babel eller esbuild för det. Keep console.* behåller loggningen, vilket är praktiskt för staging-byggen. Aktivera ES module för filer som använder import/export; då kan även namn på toppnivå förkortas eftersom modulens scope är privat.

Privat från grunden

Minifieraren laddas vid behov och körs lokalt, så din källkod laddas aldrig upp. Därför passar den bra för snabba engångsuppgifter, till exempel att krympa ett inline-skript, ett bokmärkesprogram (bookmarklet) eller ett kodavsnitt till en tagghanterare från tredje part. Om Terser rapporterar ett syntaxfel innehåller meddelandet rad och kolumn så att du kan rätta indata. För produktionspaket bör du låta minifieringen ligga kvar i byggkedjan så att den är reproducerbar, och generera source maps för felsökning.

Hur man använder

  1. Lägg till din kodKlistra in JavaScript i inmatningsfältet eller släpp en .js-fil i släppytan.
  2. Välj alternativSlå på eller av komprimering, namnförkortning, borttagning av console, modulläge och ECMAScript-mål.
  3. MinifieraKlicka på Minify JavaScript för att se resultatet med storleken före, efter och hur många procent som sparats.
  4. Kopiera eller ladda nerKopiera den minifierade koden eller ladda ner den som en .min.js-fil.

Vanliga frågor

Vilken minifierare används?
Terser, som är standardminifieraren för JavaScript i webpack och ett valbart alternativ i Vite och Rollup. Den körs helt i din webbläsare.
Vad är skillnaden mellan compress och mangle?
Compress skriver om koden till en kortare, likvärdig form genom att ta bort död kod, räkna ut konstanter och förenkla uttryck. Mangle byter namn på lokala variabler och funktionsparametrar till korta namn. Båda är säkra för vanlig kod och kan slås på eller av var för sig.
Varför försvann mina console.log-anrop?
Som standard tar komprimeraren bort console.*-anrop, vilket är vanligt i produktionspaket. Markera Keep console.* för att behålla dem.
När ska jag aktivera ES module?
Aktivera det om filen använder import- eller export-satser. Modulläget låter också Terser förkorta namn på toppnivå, vilket är säkert för moduler men kan förstöra klassiska skript som exponerar globala variabler.
Advertisement