Форматувальник і мініфікатор JavaScript
Упорядкуйте JavaScript або мініфікуйте зі справжнім стисненням і перейменуванням
Про цей інструмент
Упорядкуйте JavaScript із послідовними відступами й пробілами — розгорніть вендорний бандл, щоб побачити, що він насправді робить, або причепуріть код, вставлений із консолі. Мініфікатор тут справжній: Terser розбирає ваш код в AST, викидає мертвий код, скорочує імена локальних змінних і прибирає коментарі — той самий рушій, яким користуються бандлери в продакшені.
Оскільки мініфікація працює на AST, вона ніколи не ламає робочий код так, як це можуть «стискачі» на регулярних виразах: рядки, шаблонні літерали, регулярні вирази та крайні випадки ASI обробляє справжній парсер. Синтаксичні помилки повідомляються з позицією, а не породжують зіпсований вивід.
Terser завантажується лише коли ви вперше мініфікуєте, тож сторінка лишається легкою, і працює він повністю у вашому браузері — власницький код ніколи не покидає вашу машину.
Часті запитання
- Наскільки меншим стане мій код?
- Написаний вручну код зазвичай втрачає 30–60% до gzip: пробіли, коментарі й довгі локальні імена важать саме стільки. Код, що вже пройшов бандлер, стискається значно менше — він уже пройшов те саме перетворення один раз.
- Чи змінює мініфікація поведінку?
- Стиснення й перейменування зберігають семантику: перейменовуються лише локальні імена, а видалення мертвого коду прибирає гілки, які доказово не можуть виконатися. Класичний виняток — код, що спирається на Function.prototype.name або toString() власних функцій.
- Чи можна розмініфікувати продакшн-код із сайту?
- Форматувальник повертає пробіли й структуру, роблячи потік керування читабельним, — але оригінальні імена змінних і коментарі зникли назавжди; ви бачитимете a, b, c. Для серйозного налагодження краще брати source maps, якщо сайт їх постачає.
- Чи підтримується TypeScript або JSX?
- Ні — обидва потребують власних парсерів. Спершу скомпілюйте в JavaScript (tsc, esbuild), а тоді форматуйте чи мініфікуйте вивід тут.