Formátovanie JavaScript online
Vložte minifikovaný súbor .js, balík webpack alebo jednoriadkovú ukážku a v pravom paneli získate správne odsadený JavaScript. Formátovanie zabezpečuje Prettier vo vašom prehliadači, bez odosielania obsahu na server.
Prečo je JavaScript nečitateľný
Mnohé produkčné zostavovacie postupy minifikujú JavaScript pred jeho distribúciou. Minifikátory odstraňujú zbytočné medzery a komentáre a môžu skracovať názvy či prepisovať výrazy. Samostatný krok balenia môže spojiť moduly do väčších súborov, takže výsledný skript sa môže výrazne líšiť od zdrojov projektu. Cieľom týchto krokov je zachovať správanie a pripraviť kód na distribúciu, no sťažujú ručné skúmanie. Projekt s množstvom čitateľných modulov tak môže doraziť v podobe niekoľkých neprehľadných balíkov. Formátovanie zviditeľní ich zostávajúcu štruktúru, ale nezvráti úpravy vykonané pri zostavení.
Čo vám formátovanie skutočne vráti
Formátovanie balíka pridá zalomenia riadkov, medzery a odsadenie, vďaka ktorým sa zostávajúci program ľahšie skúma. Vnorené funkcie a podmienené vetvenia sú zreteľné a reťazce či názvy koncových bodov sa ľahšie hľadajú. Nové čísla riadkov patria naformátovanej kópii: výpis zásobníka volaní z minifikovaného súboru stále odkazuje na pôvodný súbor. LFUnminify tieto pozície neprepočítava ani neprepája s mapami zdrojového kódu. Naformátované zobrazenie použite na pochopenie okolitej logiky a presné miesta počas behu skúmajte v ladiacom nástroji prehliadača. Dobrým východiskom je výrazný reťazec z chybového hlásenia alebo sieťovej požiadavky. Nájdite ho v upravenej kópii a prečítajte si okolité podmienky namiesto predpokladu, že problém spôsobila najbližšia funkcia. Ak balík obsahuje vygenerované pomocné funkcie alebo obslužné obaly pre beh programu, zostanú v ňom aj po formátovaní. Porovnanie tohto kontextu s dostupnými pôvodnými zdrojmi poskytne spoľahlivejšie vysvetlenie než samotné odsadenie.
Podpora modernej syntaxe
Formátovač spracúva súčasný JavaScript, nie iba jeho podobu spred desiatich rokov. Podporuje šípkové funkcie, triedy, async a await, generátory, voliteľné reťazenie, operátor nullish coalescing, šablónové literály, deštrukturalizáciu, syntax spread, dynamické importy a moduly ES. Podporované je aj JSX, čo sa hodí pri skúmaní komponentu React, ktorého JSX sa pri kompilácii neodstránilo. Keďže formátovanie vykonáva Prettier, výstup používa jednotné konvencie, hoci nastavenia tohto nástroja sa môžu líšiť od konfigurácie vášho editora.
Aké sú obmedzenia
Formátovanie nezvráti transformácie vykonané pri zostavení. Premenná s názvom n zostane n, aj keď sa pôvodne volala remainingRetries. Spojené moduly zostanú v dodanom balíku a odstránené komentáre nemožno spoľahlivo odvodiť. Pôvodný repozitár alebo mapa zdrojového kódu vám môžu pomôcť získať kontext mimo tohto nástroja. Zámerne obfuskovaný kód zostáva obfuskovaný aj po formátovaní: zakódované reťazce, umelé vetvenia a zavádzajúce názvy môžu stále zakrývať jeho význam. Výsledok berte ako pomôcku pri skúmaní a každú úpravu otestujte v skutočnom projekte.
Často kladené otázky
Dokáže nástroj naformátovať balík webpack alebo Vite?
Áno, podporované balíky JavaScriptu možno naformátovať po vložení obsahu alebo otvorení lokálneho súboru. Výstup zachová spojený kód a neobnoví samostatné zdrojové moduly. Veľké balíky môžu prehliadač spomaliť alebo zablokovať, preto podľa možnosti skúmajte menšiu úplnú časť.
Odstraňuje obfuskáciu JavaScriptu?
Dokáže naformátovať podporovanú syntax JavaScriptu v obfuskovanom súbore, ale samotnú obfuskáciu nezvráti. Zakódované reťazce, umelý tok riadenia a zámerne zavádzajúce názvy zostávajú. Odsadenie môže pomôcť pri skúmaní týchto štruktúr, samotné čitateľné rozloženie však nedokazuje, čo skript robí ani či je dôveryhodný.
Môže formátovanie poškodiť môj kód?
Cieľom formátovača je zachovať správanie JavaScriptu pri uplatnení jednotného štýlu. Môže meniť interpunkciu, úvodzovky aj rozloženie, preto výsledok nie je totožnou kópiou po jednotlivých bajtoch. Ponechajte si originál, skontrolujte výstup a pred použitím upraveného alebo naformátovaného balíka v produkcii spustite testy projektu.
