Minifikator JavaScript
Wklej JavaScript, aby zmniejszyć go za pomocą Terser: martwy kod jest usuwany, nazwy skracane, a białe znaki znikają. Błędy składni wskazują dokładną linię i kolumnę.
Działa w przeglądarceBez rejestracjiNic nie jest wysyłane
Jak używać: Minifikator JavaScript
- Wklej swój JavaScript lub otwórz plik
.js. - Wybierz opcje: Skracaj nazwy skraca zmienne lokalne, Kompresuj przepisuje kod na mniejszy odpowiednik, Moduł ES włącza
import/exportna najwyższym poziomie. - Wybierz docelową wersję ECMAScript obsługiwaną przez przeglądarki Twoich użytkowników. ES2020 jest bezpieczny dla wszystkich aktualizowanych przeglądarek.
- Sprawdź rozmiar, oszczędności i szacunek po gzip pod wynikiem.
- Skopiuj zminifikowany kod lub pobierz go jako
output.min.js.
Co robi minifikator JavaScript?
Minifikacja zmniejsza JavaScript bez zmiany jego działania. To narzędzie używa Terser, minifikatora stojącego za webpackiem, Vite i Rollupem, i stosuje trzy rodzaje zmian:
- Usuwanie białych znaków i komentarzy: wcięcia, znaki nowej linii i komentarze nie są potrzebne silnikowi JavaScript.
- Mangling: nazwy zmiennych lokalnych i parametrów funkcji, np.
subtotal, stają się pojedynczymi literami. Nazwy globalne i właściwości obiektów pozostają nietknięte, więc Twoje publiczne API nadal działa. - Kompresja: wyrażenia stałe są obliczane, nieosiągalny kod usuwany, instrukcje
ifzamieniane na operatory trójargumentowe, a krótkie funkcje wstawiane inline.
Minifikacja a gzip: czy potrzebujesz obu?
Tak. Gzip i Brotli kompresują powtarzające się wzorce bajtów podczas przesyłania, a minifikacja usuwa bajty, które przeglądarka musiałaby pobrać, sparsować i skompilować. Typowy skrypt zmniejsza się o 40–60% dzięki minifikacji, a potem o kolejne 60–70% dzięki gzip. Pokazany tu rozmiar po gzip dobrze szacuje, ile faktycznie wyśle Twój serwer.
Zachowywanie komentarzy licencyjnych
Wiele licencji open source (MIT, BSD, Apache) wymaga, aby informacja o prawach autorskich pozostała przy kodzie. Zgodnie z konwencją komentarze zaczynające się od /*! lub zawierające @license albo @preserve są zachowywane, gdy włączona jest opcja Zachowaj komentarze licencyjne.
Kiedy nie minifikować ręcznie
Jeśli projekt używa już bundlera, pozwól mu minifikować buildy produkcyjne i generować source mapy do debugowania. Minifikator online sprawdza się przy jednorazowych skryptach, fragmentach dla CMS-a lub menedżera tagów, bookmarkletach i sprawdzaniu, jak bardzo można zmniejszyć kawałek kodu.
Najczęściej zadawane pytania
Czy mój kod jest wysyłany na serwer?
Czy minifikacja może zepsuć mój kod?
Function.prototype.toString() lub na nazwach zmiennych lokalnych przez eval może zostać zmieniony; w takim przypadku wyłącz Skracaj nazwy.