Utilia

JavaScript formatuotojas ir minimizatorius

Sutvarkyk minimizuotą JavaScript, minimizuok jį su Terser arba patikrink sintaksę su tikslia klaidos eilute ir stulpeliu. Veikia tik tavo naršyklėje.

Minimizavimo parinktys

Kaip formatuoti ar minimizuoti JavaScript

  1. Įklijuok kodą arba spustelėk Atidaryti failą, kad įkeltum .js, .mjs ar .jsx failą (iki 10 MB).
  2. Pasirink Įtrauka ir, jei teiki pirmenybę Allman stiliui, pažymėk Skliausteliai savo eilutėje.
  3. Spustelėk Formatuoti, kad kodas taptų skaitomas.
  4. Norint jį sumažinti, nustatyk Minimizavimo parinktys ir spustelėk Minimizuoti. Jei nori tik ieškoti klaidų, spustelėk Tikrinti sintaksę.
  5. Nukopijuok arba atsisiųsk rezultatą. Būsenos eilutė rodo dydį prieš ir po bei sutaupytą procentą.

Kodas tik skaitomas ir transformuojamas, niekada nevykdomas: nieko, ką įklijuoji, šiame puslapyje nevykdoma.

Formatavimas su js-beautify

Formatuoti naudoja js-beautify. Jis kiekvieną sakinį deda į atskirą eilutę, įtraukia blokus, prideda tarpus aplink operatorius ir po raktažodžių bei palieka iki vienos tuščios eilutės ten, kur tokių buvo. Jis supranta ir šiuolaikinę sintaksę (klases, rodyklines funkcijas, šabloninius literalus, async/await) bei JSX. Tai greičiausias būdas perskaityti minimizuotą biblioteką ar vienos eilutės fragmentą, nukopijuotą iš tinklalapio.

Formatavimas keičia tik tarpus. Jis netikrina, ar kodas teisingas: trūkstamas skliaustas tiesiog sukuria keistą įtrauką. Tam naudok Tikrinti sintaksę.

Minimizavimas su Terser

Minimizuoti naudoja Terser – minimizatorių, kurį naudoja dauguma JavaScript kūrimo įrankių. Kadangi jis didelis, jis atsisiunčiamas tik pirmą kartą spustelėjus Minimizuoti ar Tikrinti sintaksę. Parinktys tiesiogiai atitinka Terser nustatymus:

  • ES modulis (import/export) kodą analizuoja kaip modulį (module: true): taikomas griežtasis režimas, o aukščiausio lygio vardai yra privatūs, todėl juos galima pervadinti, o nenaudojamus pašalinti. Palik nepažymėtą klasikiniam scenarijui, kurio globalias funkcijas naudoja kiti scenarijai.
  • Suspausti (compress) perrašo kodą į trumpesnį lygiavertį: konstantų sutraukimas (2*60 tampa 120), nepasiekiamo kodo šalinimas, var deklaracijų sujungimas, trumpesnės sąlygos.
  • Trumpinti kintamųjų vardus (mangle) pervadina vietinius kintamuosius ir parametrus į vieną ar dvi raides. Globalūs vardai ir objektų savybės niekada nepervadinami.
  • Palikti licencijų komentarus palieka komentarus, prasidedančius /*! arba turinčius @license ar @preserve. Visi kiti komentarai pašalinami.

Minimizavimas negali pakeisti kodo veikimo, tačiau kodas, kuris remiasi funkcijų vardais (fn.name) ar eval, po pervadinimo gali veikti kitaip. Tokiu atveju atžymėk Trumpinti kintamųjų vardus.

Sintaksės klaidos su eilute ir stulpeliu

Kai Terser negali išanalizuoti kodo, Minimizuoti ir Tikrinti sintaksę parodo klaidos pranešimą su eilute ir stulpeliu, pavyzdžiui, „12 eilutė, 8 stulpelis – Sintaksės klaida: Unexpected token punc «)»“. Stulpelis skaičiuojamas nuo 1. Tipinė priežastis – trūkstamas skliaustas anksčiau faile, todėl pažiūrėk ir į eilutes prieš nurodytą vietą.

Dažnai užduodami klausimai

Ar mano kodas kur nors įkeliamas?

Ne. Ir js-beautify, ir Terser veikia tavo naršyklėje, o kodas lieka tavo kompiuteryje.

Ar galiu minimizuoti TypeScript?

Ne. Terser priima tik JavaScript. Pirmiausia sukompiliuok TypeScript į JavaScript, tada minimizuok rezultatą. Paprastą TypeScript dažnai pavyksta suformatuoti su Formatuoti, bet tipų anotacijos gali būti keistai išdėstytos.

Kodėl mano minimizuotas kodas atrodo kitaip, nei rašiau?

Suspausti apskaičiuoja pastovias išraiškas, įterpia vienkartines reikšmes ir pašalina nepasiekiamą kodą. Rezultatas veikia taip pat. Atžymėk Suspausti, jei nori pašalinti tik tarpus ir komentarus.

Ar „ES modulis“ turi atitikti mano kodą?

Taip. Kodą su import ar export reikia minimizuoti kaip modulį. Klasikinis scenarijus, minimizuotas kaip modulis, gali prarasti globalias funkcijas, kurias kviečia kiti scenarijai, nes aukščiausio lygio vardai tada laikomi privačiais.

O JSON?

JSON yra tinkamas JavaScript, todėl abu mygtukai jį priima, tačiau specialus JSON formatuotojas pateikia geresnius klaidų pranešimus ir rūšiuoja raktus.