Utilia

Formatuesi dhe minifikuesi i JavaScript

Bukuro JavaScript të minifikuar, minifikoje me Terser, ose kontrollo sintaksën me rreshtin dhe kolonën e saktë të gabimit. Funksionon vetëm në shfletuesin tënd.

Opsionet e minifikimit

Si ta formatosh ose minifikosh JavaScript

  1. Ngjit kodin tënd, ose kliko Hap një skedar për të ngarkuar një skedar .js, .mjs ose .jsx (deri në 10 MB).
  2. Zgjidh Shtyrjen dhe, nëse e parapëlqen stilin Allman, shëno Kllapat gjarpëruese në rresht të veçantë.
  3. Kliko Formato (bukuro) për ta bërë kodin të lexueshëm.
  4. Për ta zvogëluar, cakto Opsionet e minifikimit dhe kliko Minifiko. Për të kërkuar vetëm gabime, kliko Kontrollo sintaksën.
  5. Kopjo ose shkarko rezultatin. Rreshti i gjendjes tregon madhësinë para dhe pas, si dhe përqindjen e kursyer.

Kodi vetëm lexohet dhe transformohet, nuk ekzekutohet kurrë: asgjë nga ç’ngjit nuk ekzekutohet në këtë faqe.

Bukurim me js-beautify

Formato (bukuro) përdor js-beautify. Vendos një instruksion për rresht, shtyn blloqet, shton hapësira rreth operatorëve dhe pas fjalëve kyçe, dhe mban deri në një rresht bosh aty ku kishe. Kupton edhe sintaksën moderne (klasa, funksione shigjetë, template literals, async/await) dhe JSX. Është mënyra më e shpejtë për të lexuar një bibliotekë të minifikuar ose një copëz njërreshtore të kopjuar nga një faqe web.

Bukurimi ndryshon vetëm hapësirat. Nuk kontrollon nëse kodi është i vlefshëm: një kllapë që mungon thjesht prodhon shtyrje të çuditshme. Për këtë përdor Kontrollo sintaksën.

Minifikim me Terser

Minifiko përdor Terser, minifikuesin që përdorin shumica e mjeteve të ndërtimit të JavaScript. Pasi është i madh, shkarkohet vetëm kur klikon për herë të parë Minifiko ose Kontrollo sintaksën. Opsionet përputhen drejtpërdrejt me cilësimet e Terser:

  • Modul ES (import/export) e analizon kodin si modul (module: true): vlen modaliteti strikt dhe emrat e nivelit të lartë janë privatë, ndaj mund të riemërtohen dhe të papërdorurit mund të hiqen. Lëre të pashënuar për një skript klasik, funksionet globale të të cilit përdoren nga skripte të tjera.
  • Ngjeshe (compress) e rishkruan kodin në kod ekuivalent më të shkurtër: palosje konstantesh (2*60 bëhet 120), heqje e kodit të vdekur, bashkim i deklaratave var, kushte më të shkurtra.
  • Shkurto emrat e variablave (mangle) riemërton variablat lokalë dhe parametrat me një a dy shkronja. Emrat globalë dhe vetitë e objekteve nuk riemërtohen kurrë.
  • Mbaj komentet e licencës ruan komentet që nisin me /*! ose përmbajnë @license ose @preserve. Të gjitha komentet e tjera hiqen.

Minifikimi nuk mund ta ndryshojë çfarë bën kodi, por kodi që mbështetet te emrat e funksioneve (fn.name) ose te eval mund të sillet ndryshe pas riemërtimit. Në atë rast hiq shenjën nga Shkurto emrat e variablave.

Gabimet e sintaksës me rresht dhe kolonë

Kur Terser nuk e analizon dot kodin, Minifiko dhe Kontrollo sintaksën shfaqin mesazhin e gabimit me rreshtin dhe kolonën, për shembull “Rreshti 12, kolona 8 – Gabim sintakse: Unexpected token punc «)»”. Kolona i numëron karakteret nga 1. Një shkak tipik është një kllapë që mungon më herët në skedar, ndaj shiko edhe rreshtat para pozicionit të raportuar.

Pyetje të shpeshta

A ngarkohet kodi im diku?

Jo. Js-beautify dhe Terser ekzekutohen të dyja në shfletuesin tënd, dhe kodi yt mbetet në kompjuterin tënd.

A mund ta minifikoj TypeScript?

Jo. Terser pranon vetëm JavaScript. Kompilo më parë TypeScript në JavaScript, pastaj minifiko daljen. Formatimi i TypeScript të thjeshtë me Formato (bukuro) shpesh funksionon, por shënimet e tipeve mund të kenë hapësira të çuditshme.

Pse kodi im i minifikuar duket ndryshe nga ç’kam shkruar?

Ngjeshe vlerëson shprehjet konstante, fut vlerat e përdorura një herë dhe heq kodin e paarritshëm. Rezultati sillet njëlloj. Hiq shenjën nga Ngjeshe për të hequr vetëm hapësirat dhe komentet.

A duhet “Modul ES” të përputhet me kodin tim?

Po. Kodi me import ose export duhet të minifikohet si modul. Një skript klasik i minifikuar si modul mund të humbasë funksione globale që thërrasin skripte të tjera, sepse emrat e nivelit të lartë atëherë trajtohen si privatë.

Po JSON?

JSON është JavaScript i vlefshëm, ndaj të dy butonat e pranojnë, por formatuesi i dedikuar i JSON jep mesazhe gabimi më të mira dhe i rendit çelësat.