JavaScript-мініфікатор
Вставте JavaScript, щоб стиснути його за допомогою Terser: мертвий код видаляється, імена скорочуються, пробіли зникають. Синтаксичні помилки вказують точний рядок і стовпець.
Працює в браузеріБез реєстраціїНічого не завантажується
Як користуватися: JavaScript-мініфікатор
- Вставте JavaScript або відкрийте файл
.js. - Виберіть опції: Скорочувати імена вкорочує локальні змінні, Стискати переписує код у менший еквівалент, ES-модуль вмикає
import/exportверхнього рівня. - Виберіть цільову версію ECMAScript, яку підтримують браузери ваших користувачів. ES2020 безпечна для всіх evergreen-браузерів.
- Перевірте розмір, економію й оцінку gzip під результатом.
- Скопіюйте мініфікований код або завантажте його як
output.min.js.
Що робить мініфікатор JavaScript?
Мініфікація зменшує JavaScript, не змінюючи його поведінки. Інструмент використовує Terser — мініфікатор, що стоїть за webpack, Vite і Rollup, — і застосовує три види змін:
- Видалення пробілів і коментарів: відступи, переведення рядків і коментарі рушію JavaScript не потрібні.
- Скорочення імен (mangling): імена локальних змінних і параметрів функцій на кшталт
subtotalперетворюються на одиночні літери. Глобальні імена й властивості об'єктів не чіпаються, тому ваш публічний API продовжує працювати. - Стиснення: константні вирази обчислюються заздалегідь, недосяжний код видаляється, оператори
ifперетворюються на тернарні, а короткі функції вбудовуються.
Мініфікація чи gzip: чи потрібне і те, й інше?
Так. Gzip і Brotli стискають повторювані послідовності байтів під час передавання, а мініфікація прибирає байти, які браузеру інакше довелося б завантажити, розібрати й скомпілювати. Типовий скрипт зменшується на 40–60% від мініфікації й ще на 60–70% від gzip. Показаний тут розмір gzip — добра оцінка того, що насправді надішле ваш сервер.
Збереження ліцензійних коментарів
Багато open-source ліцензій (MIT, BSD, Apache) вимагають, щоб повідомлення про авторські права залишалося з кодом. За домовленістю коментарі, що починаються з /*! або містять @license чи @preserve, зберігаються, коли ввімкнено Зберігати ліцензійні коментарі.
Коли не варто мініфікувати вручну
Якщо в проєкті вже є бандлер, нехай він мініфікує продакшн-збірки й генерує source maps для налагодження. Онлайн-мініфікатор ідеальний для разових скриптів, сніпетів для CMS чи менеджера тегів, букмарклетів і перевірки того, наскільки маленьким може стати фрагмент коду.
Поширені запитання
Чи завантажується мій код на сервер?
Чи може мініфікація зламати мій код?
Function.prototype.toString() або на імена локальних змінних через eval, може постраждати; у такому разі вимкніть Скорочувати імена.