JavaScript минификатор

Поставете JavaScript, за да го свиете с Terser: мъртвият код се премахва, имената се съкращават, а интервалите изчезват. Синтактичните грешки сочат точния ред и колона.

Работи в браузъраБез регистрацияНищо не се качва

Минифициран резултат

Как да използвате: JavaScript минификатор

  1. Поставете вашия JavaScript или отворете файл .js.
  2. Изберете опции: Съкращавай имената скъсява локалните променливи, Компресирай пренаписва кода в по-малък еквивалент, ES модул позволява import/export на най-горно ниво.
  3. Изберете ECMAScript целта, която поддържат браузърите на потребителите ви. ES2020 е безопасна за всички evergreen браузъри.
  4. Проверете размера, спестяването и оценката за gzip под резултата.
  5. Копирайте минифицирания код или го изтеглете като output.min.js.

Какво прави JavaScript минификаторът?

Минифицирането прави JavaScript по-малък, без да променя какво прави. Този инструмент използва Terser, минификатора зад webpack, Vite и Rollup, и прилага три вида промени:

  • Премахване на интервали и коментари: отстъпите, новите редове и коментарите не са нужни на JavaScript енджина.
  • Съкращаване на имена (mangling): имената на локални променливи и параметри на функции като subtotal стават единични букви. Глобалните имена и свойствата на обекти остават непокътнати, така че публичният ви API продължава да работи.
  • Компресиране: константните изрази се изчисляват предварително, недостижимият код се премахва, if конструкциите стават тернарни оператори, а кратките функции се вграждат.

Минифициране или gzip: нужни ли са и двете?

Да. Gzip и Brotli компресират повтарящи се байтови шаблони при преноса, докато минифицирането премахва байтове, които браузърът иначе би трябвало да изтегли, парсира и компилира. Типичен скрипт намалява с 40–60% от минифицирането и после с още 60–70% от gzip. Показаният тук gzip размер е добра оценка за това, което сървърът ви реално ще изпрати.

Запазване на лицензните коментари

Много лицензи с отворен код (MIT, BSD, Apache) изискват бележката за авторски права да остане с кода. По конвенция коментарите, които започват с /*! или съдържат @license или @preserve, се запазват, когато Запази лицензните коментари е включено.

Кога да не минифицирате ръчно

Ако проектът ви вече използва bundler, оставете го да минифицира продукционните билдове и да генерира source maps за дебъгинг. Онлайн минификаторът е идеален за еднократни скриптове, фрагменти за CMS или tag manager, bookmarklet-и и за проверка колко малък може да стане даден код.

Често задавани въпроси

Качва ли се кодът ми на сървър?
Не. Terser работи в раздела на браузъра ви, така че собственият ви код никога не напуска компютъра.
Може ли минифицирането да счупи кода ми?
Terser прилага само трансформации, които запазват поведението идентично за валиден JavaScript. Код, който разчита на Function.prototype.toString() или на имена на локални променливи чрез eval, може да бъде засегнат; в такъв случай изключете Съкращавай имената.
Поддържа ли модерен синтаксис като async/await, класове и optional chaining?
Да. Terser парсира синтаксис ES2022+. Настройката за цел определя само какъв синтаксис може да използва резултатът; тя не транспилира по-новите възможности към по-стари.
Каква е разликата между minify и uglify?
Означават едно и също. UglifyJS беше класическият инструмент; Terser е неговият поддържан fork с пълна поддръжка на ES2015+.

Свързани инструменти