Utilia

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

Улепшајте минифициран JavaScript, минифицирајте го со Terser или проверете ја синтаксата со точен ред и колона на грешката. Работи само во прелистувачот.

Опции за минификација

Како да форматирате или минифицирате JavaScript

  1. Залепете го вашиот код или кликнете Отвори датотека за да вчитате .js, .mjs или .jsx датотека (до 10 MB).
  2. Изберете Вовлекување и, ако го претпочитате стилот Allman, штиклирајте Загради во посебен ред.
  3. Кликнете Форматирај (улепшај) за да го направите кодот читлив.
  4. За да го намалите, поставете ги Опции за минификација и кликнете Минифицирај. За да барате само грешки, кликнете Провери синтакса.
  5. Копирајте го или преземете го резултатот. Статусната линија ја прикажува големината пред и по, и процентот на заштеда.

Кодот само се чита и трансформира, никогаш не се извршува: ништо што го залепувате не се извршува на оваа страница.

Улепшување со js-beautify

Форматирај (улепшај) користи js-beautify. Става една наредба по ред, ги вовлекува блоковите, додава празни места околу операторите и по клучните зборови и задржува до еден празен ред таму каде што сте имале. Ја разбира и современата синтакса (класи, arrow функции, template literals, async/await) и JSX. Тоа е најбрзиот начин да се прочита минифицирана библиотека или исечок во еден ред копиран од веб-страница.

Улепшувањето менува само празни места. Не проверува дали кодот е валиден: недостасувачка заграда едноставно дава чудно вовлекување. За тоа користете Провери синтакса.

Минификација со Terser

Минифицирај користи Terser, минификаторот што го користат повеќето алатки за градење на JavaScript. Бидејќи е голем, се презема само кога првпат ќе кликнете Минифицирај или Провери синтакса. Опциите директно одговараат на поставките на Terser:

  • ES модул (import/export) го анализира кодот како модул (module: true): важи строг режим, а имињата на највисоко ниво се приватни, па може да се преименуваат, а некористените да се отстранат. Оставете го неозначено за класична скрипта чии глобални функции ги користат други скрипти.
  • Компресирај (compress) го препишува кодот во пократок еквивалентен код: пресметување на константи (2*60 станува 120), отстранување мртов код, спојување на декларации var, пократки услови.
  • Скрати ги имињата на променливите (mangle) ги преименува локалните променливи и параметри во една или две букви. Глобалните имиња и својствата на објекти никогаш не се преименуваат.
  • Задржи ги коментарите за лиценца ги задржува коментарите што почнуваат со /*! или содржат @license или @preserve. Сите други коментари се отстрануваат.

Минификацијата не може да го промени она што го прави кодот, но кодот што се потпира на имиња на функции (fn.name) или на eval може да се однесува поинаку по преименувањето. Во тој случај исклучете Скрати ги имињата на променливите.

Синтаксни грешки со ред и колона

Кога Terser не може да го анализира кодот, Минифицирај и Провери синтакса ја прикажуваат пораката за грешка со нејзиниот ред и колона, на пример „Ред 12, колона 8 – Syntax error: Unexpected token punc «)»“. Колоната брои знаци од 1. Типична причина е недостасувачка заграда порано во датотеката, па погледнете ги и редовите непосредно пред пријавената позиција.

Често поставувани прашања

Дали мојот код се качува некаде?

Не. И js-beautify и Terser работат во вашиот прелистувач, а вашиот код останува на вашиот компјутер.

Може ли да минифицирам TypeScript?

Не. Terser прифаќа само JavaScript. Најпрво компајлирајте го TypeScript во JavaScript, па минифицирајте го излезот. Форматирањето на едноставен TypeScript со Форматирај (улепшај) често работи, но анотациите на типови може да имаат чудни празни места.

Зошто мојот минифициран код изгледа поинаку од она што го напишав?

Компресирај ги пресметува константните изрази, ги вметнува вредностите со една употреба и го отстранува недостапниот код. Резултатот се однесува исто. Исклучете Компресирај за да се отстранат само празни места и коментари.

Дали „ES модул“ мора да одговара на мојот код?

Да. Кодот со import или export треба да се минифицира како модул. Класична скрипта минифицирана како модул може да ги загуби глобалните функции што ги повикуваат други скрипти, бидејќи имињата на највисоко ниво тогаш се третираат како приватни.

Што со JSON?

JSON е валиден JavaScript, па двете копчиња го прифаќаат, но наменскиот JSON форматер дава подобри пораки за грешки и ги сортира клучевите.