Utilia

JavaScript formater i minifikator

Uljepšaj minificirani JavaScript, minificiraj ga pomoću Tersera ili provjeri sintaksu s točnim retkom i stupcem svake greške. Radi samo u pregledniku.

Opcije minificiranja

Kako formatirati ili minificirati JavaScript

  1. Zalijepi svoj kôd ili klikni Otvori datoteku da učitaš datoteku .js, .mjs ili .jsx (do 10 MB).
  2. Odaberi Uvlačenje i, ako preferiraš Allmanov stil, označi Vitičaste zagrade u zasebnom retku.
  3. Klikni Formatiraj (uljepšaj) da kôd učiniš čitljivim.
  4. Da ga smanjiš, postavi Opcije minificiranja i klikni Minificiraj. Da samo potražiš greške, klikni Provjeri sintaksu.
  5. Kopiraj ili preuzmi rezultat. Statusni redak prikazuje veličinu prije i poslije te postotak uštede.

Kôd se samo čita i pretvara, nikada se ne izvršava: ništa što zalijepiš ne izvodi se na ovoj stranici.

Uljepšavanje pomoću js-beautifya

Formatiraj (uljepšaj) koristi js-beautify. Stavlja jednu naredbu u svaki redak, uvlači blokove, dodaje razmake oko operatora i iza ključnih riječi te zadržava do jednog praznog retka ondje gdje si ga imao. Razumije i modernu sintaksu (klase, strelične funkcije, predloške nizova, async/await) te JSX. To je najbrži način da pročitaš minificiranu biblioteku ili jednoredni isječak kopiran s web-stranice.

Uljepšavanje mijenja samo razmake. Ne provjerava je li kôd valjan: zagrada koja nedostaje jednostavno daje neobično uvlačenje. Za to upotrijebi Provjeri sintaksu.

Minificiranje pomoću Tersera

Minificiraj koristi Terser, minifikator koji rabi većina alata za izgradnju JavaScripta. Budući da je velik, preuzima se tek kad prvi put klikneš Minificiraj ili Provjeri sintaksu. Opcije se izravno preslikavaju u Terserove postavke:

  • ES modul (import/export) analizira kôd kao modul (module: true): vrijedi strogi način, a nazivi na najvišoj razini su privatni pa se mogu preimenovati, a neupotrijebljeni ukloniti. Ostavi neoznačeno za klasičnu skriptu čije globalne funkcije koriste druge skripte.
  • Sažmi (compress) prepisuje kôd u kraći ekvivalentan kôd: računanje konstanti (2*60 postaje 120), uklanjanje mrtvog kôda, spajanje deklaracija var, kraći uvjeti.
  • Skrati nazive varijabli (mangle) preimenuje lokalne varijable i parametre u jedno ili dva slova. Globalni nazivi i svojstva objekata nikada se ne preimenuju.
  • Zadrži licencne komentare zadržava komentare koji počinju s /*! ili sadrže @license ili @preserve. Svi ostali komentari se uklanjaju.

Minificiranje ne može promijeniti što kôd radi, ali kôd koji se oslanja na nazive funkcija (fn.name) ili na eval može se nakon preimenovanja ponašati drukčije. U tom slučaju isključi Skrati nazive varijabli.

Sintaksne greške s retkom i stupcem

Kad Terser ne može analizirati kôd, Minificiraj i Provjeri sintaksu prikazuju poruku o grešci s retkom i stupcem, na primjer „Redak 12, stupac 8 – Sintaksna greška: Unexpected token punc «)»“. Stupac broji znakove od 1. Čest uzrok je zagrada koja nedostaje ranije u datoteci, pa pogledaj i retke neposredno prije prijavljenog položaja.

Česta pitanja

Šalje li se moj kôd negdje?

Ne. js-beautify i Terser oba rade u tvom pregledniku, a tvoj kôd ostaje na tvom računalu.

Mogu li minificirati TypeScript?

Ne. Terser prihvaća samo JavaScript. Najprije kompajliraj TypeScript u JavaScript, a zatim minificiraj izlaz. Formatiranje jednostavnog TypeScripta pomoću Formatiraj (uljepšaj) često radi, ali anotacije tipova mogu imati neobične razmake.

Zašto moj minificirani kôd izgleda drukčije od onoga što sam napisao?

Sažmi izračunava konstantne izraze, ugrađuje vrijednosti koje se koriste jednom i uklanja nedostižan kôd. Rezultat se ponaša jednako. Isključi Sažmi da ukloniš samo razmake i komentare.

Mora li se „ES modul“ podudarati s mojim kôdom?

Da. Kôd s import ili export treba minificirati kao modul. Klasična skripta minificirana kao modul mogla bi izgubiti globalne funkcije koje pozivaju druge skripte, jer se nazivi na najvišoj razini tada smatraju privatnima.

Što je s JSON-om?

JSON je valjan JavaScript pa ga oba gumba prihvaćaju, ali namjenski JSON formater daje bolje poruke o greškama i sortira ključeve.