Разгъване на JavaScript онлайн
Поставете минифициран .js файл, webpack пакет или фрагмент на един ред и получете JavaScript с правилни отстъпи в десния панел. Prettier извършва форматирането в браузъра ви, без нищо да се качва другаде.
Защо JavaScript става труден за четене
Много процеси за изграждане минифицират JavaScript преди публикуване. Минификаторите премахват ненужните интервали и коментари и може да съкращават имена или да пренаписват изрази. Отделна стъпка за пакетиране може да обедини модулите в по-големи файлове, така че доставеният скрипт да се различава значително от изходните файлове на проекта. Целта на тези стъпки е да запазят поведението при подготовката на кода за разпространение, но те затрудняват ръчния преглед. Проект с много четими модули може да пристигне като няколко плътни пакета. Форматирането разкрива останалата в тях структура, без да отменя преобразуванията при изграждането.
Какво всъщност връща форматирането
Форматирането на пакет добавя нови редове, интервали и отстъпи, които улесняват прегледа на останалата програма. Вложените функции и условните разклонения стават видими, а низовете и имената на крайни точки се намират по-лесно. Новите номера на редове принадлежат на форматираното копие: стекът на извикванията от минифицирания файл все още сочи към оригиналния файл. LFUnminify не преобразува тези позиции и не ги свързва със source maps. Използвайте форматирания изглед, за да разберете околната логика, и дебъгера на браузъра, за да проучите точните места при изпълнение. Добра отправна точка е характерен низ от съобщение за грешка или мрежова заявка. Намерете го във форматираното копие и прочетете условията около него, вместо да приемате, че най-близката функция причинява проблема. Ако пакетът съдържа генерирани помощни функции или обвивки за изпълнение, те остават и след форматирането. Сравняването на този контекст с оригиналния код, когато е наличен, дава по-надеждно обяснение от самите отстъпи.
Поддържа се съвременен синтаксис
Инструментът анализира съвременен JavaScript, а не ограничен набор от конструкции отпреди десетилетие. Поддържат се стрелкови функции, класове, async и await, генератори, optional chaining, nullish coalescing, шаблонни литерали, деструктуриране, spread синтаксис, динамични импортирания и ES модули. Поддържа се и JSX, което е важно при преглед на React компонент, компилиран без преобразуване на този синтаксис. Тъй като обработката се извършва от Prettier, резултатът следва последователни конвенции, макар настройките на този инструмент да може да се различават от конфигурацията на редактора ви.
Какви са ограниченията
Форматирането не отменя преобразуванията, извършени при изграждане. Променлива с име n остава n, дори първоначалното ѝ име да е било remainingRetries. Пакетираните модули остават в подадения пакет, а изтритите коментари не могат да бъдат надеждно възстановени по предположение. Оригиналното хранилище или карта на изходния код може да помогнат за възстановяване на контекста извън този инструмент. Умишлено обфускираният код остава такъв и след форматиране: кодирани низове, изкуствени разклонения и подвеждащи имена все още могат да скриват смисъла му. Приемайте резултата като помощ при прегледа, а след това тествайте всяка промяна в действителния проект.
Често задавани въпроси
Може ли да разгъва пакет от webpack или Vite?
Да, поддържаните JavaScript пакети могат да се форматират, след като поставите съдържанието им или отворите локален файл. Резултатът запазва пакетирания код, вместо да възстановява отделните изходни модули. Големите пакети могат да забавят или блокират браузъра, затова при възможност преглеждайте по-малка завършена част.
Премахва ли обфускацията на JavaScript?
Може да форматира поддържания JavaScript синтаксис в обфускиран файл, но не отменя обфускацията. Кодираните низове, изкуственият поток на управление и умишлено подвеждащите имена остават. Отстъпите могат да помогнат при проучването на тези структури, но само четимото подреждане не установява какво прави скриптът или дали заслужава доверие.
Може ли да повреди кода ми?
Целта на инструмента е да запази поведението на JavaScript, като приложи последователен стил. Възможно е да промени пунктуацията, кавичките и подреждането, така че резултатът не е копие байт по байт. Запазете оригинала, прегледайте резултата и изпълнете тестовете на проекта, преди да използвате редактиран или форматиран пакет в работна среда.
