Najczęstsze pytania


Co to jest kompilator Closure? Dlaczego warto z niej korzystać?
Klaster Kompilator to narzędzie, które przyspiesza pobieranie i uruchamianie kodu JavaScript. Za pomocą kompilatora Closure możesz zmniejszyć rozmiar plików JavaScript i zwiększyć ich wydajność.
Czym kompilator Closure różni się od innych dostępnych sprężarek JavaScript?

Ogólnie rzecz biorąc, kompilator Closure powinien spełniać wymagania innych narzędzi do minifikacji kodu lub przekroczyć ich limity, a także skrócić czas pobierania Twojej aplikacji internetowej. Oprócz tego może on pomóc w wykrywaniu błędów składni podczas programowania (a nie podczas testowania) i identyfikować potencjalne błędy kodu.

W trybie prostym kompilacja Closure Compiler powinna działać lepiej niż inne narzędzia, ponieważ wykorzystuje analizy podobne do kompilacji, aby znaleźć dodatkowe sposoby minimalizowania rozmiaru kodu. Może on na przykład zawierać funkcje, które są używane tylko w kilku przypadkach, a także używać ponownie nazw zmiennych i używać wstępnie obliczanych wyrażeń regularnych.

W trybie zaawansowanym narzędzie Closure Compiler może też używać dodanych adnotacji, aby wykryć błędy, które łatwo wykryć.

Czy kompilator Closure może kompilować kod JavaScript umieszczony w kodzie HTML?
Nie. Kompilator Closure działa tylko w przypadku plików, które zawierają tylko kod JavaScript.
Czy mogę używać kompilatora Closure razem z innymi minifikatorami JavaScript?

Tak. Closure Compiler odczytuje prawidłowy kod JavaScript i generuje go, dzięki czemu możesz zastosować go w pliku JavaScript przed uruchomieniem pliku lub po jego uruchomieniu za pomocą minifikatora.

Pamiętaj, że w aplikacji Closure Compiler i innych minifikatorów można spodziewać się kodu przychodzącego. Minifikator, który usuwa komentarze, może na przykład usunąć licencje lub informacje wymagane przez inne narzędzia.

Jak debugować kod JavaScript udostępniany przez kompilację Closure Compiler?
Jeśli skompilowany kod generuje błędy lub wykazuje nieoczekiwane zachowanie, możesz debugować problem za pomocą Map źródłowych. Mapa źródłowa zapewnia mapowanie między skompilowanym kodem a pierwotnym kodem źródłowym, dzięki czemu narzędzia dla programistów w przeglądarce mogą pokazać oryginalny kod zamiast skompilowanego kodu. Aby kompilator Closure mógł wygenerować mapę źródłową, prześlij w wierszu poleceń flagę --create_source_map.
$ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js
Więcej informacji o narzędziach dla programistów w Chrome, w tym o mapach źródłowych, znajdziesz w artykule Debugowanie JavaScriptu.
Czy kompilator kompromisuje się między szybkością wykonywania aplikacji a rozmiarem kodu pobierania?
Tak. Każdy kompilator kompilacji kompromisów. Niektóre optymalizacje rozmiaru wiążą się z niewielkimi kosztami. Deweloperzy Closure Compiler uznali jednak, że nie mogą udostępniać znaczącego dodatkowego środowiska wykonawczego. Niektóre optymalizatory jeszcze kompilują czas działania (zobacz następne pytanie).
Czy kompilator zoptymalizować szybkość?
W większości przypadków kod jest krótszy, bo czas pobierania jest zwykle najważniejszy w aplikacjach internetowych. Optymalizacje, które zmniejszają nadmiarowość, przyspieszają też działanie kodu.
Czy istnieją ograniczenia rozmiaru plików, które można skompilować?
Usługa internetowa kompilacji jest ustawiona na maksymalny rozmiar pliku, ale samodzielna aplikacja do kompilacji nie ma.
Czy kompilator zamknięty jest dostępny na wszystkich platformach?
Kompilator jest napisany w języku Java, więc może uruchomić się niezależnie od środowiska Java.
Czy kompilator może przetwarzać prawny kod JavaScript?
Najczęściej. Niektóre konstrukcje kodu JavaScript, w tym eval() i with(), mogą unieważnić założenia, na których oparte są przekształcenia kompilatora.
Co muszę wiedzieć o tworzeniu stron internetowych, aby korzystać z kompilatora Closure?
Klaster Kompilator jest narzędziem do programowania w języku JavaScript, więc aby go użyć, musisz umieć programować w języku JavaScript. Jednak każdy, kto używa JavaScriptu, może korzystać z kompilatora Closure.
Jak kompilator Closure działa z biblioteką Closure?
Kompilator Closure zawiera specjalne operacje sprawdzania i optymalizacji kodu, który korzysta z biblioteki Closure. Oprócz tego usługa Kompilacja Closure może automatycznie uwzględniać pliki z biblioteki Closure. Artykuł Znajdowanie sposobu zamknięcia zawiera opis składni potrzebnej do zadeklarowania potrzebnych części sekcji Closure. Informacje o używaniu biblioteki Closure z interfejsem API znajdziesz w dokumentacji API. Aby używać biblioteki Closure z aplikacją Closure Compiler, musisz najpierw pobrać bibliotekę Closure. Obsługa biblioteki Closure jest domyślnie włączona w aplikacji kompilatora.
Mój kod przestał działać lub kompilator generuje błędy podczas kompilowania za pomocą ADVANCED_OPTIMIZATIONS. Dlaczego?
Korzystanie z trybu zaawansowanego wymaga zwykle przygotowania i zmian kodu. Zaawansowane kompilacje i zewnętrzne wyjaśniają, jak sprawdzić, czy kod działa z ADVANCED_OPTIMIZATIONS.
Dlaczego w skompilowanych skryptach są losowe pliki danych?
Kompilator zamknięty celowo dodaje podziały wiersza co 500 znaków. Zapory sieciowe i serwery proxy mogą czasem uszkodzić lub zignorować duże pliki JavaScript z bardzo długimi wierszami. Dodanie podziału wiersza co 500 znaków pozwala uniknąć tego problemu. Usunięcie podziałów wiersza nie ma wpływu na semantykę skryptu. Wpływ na rozmiar kodu jest niewielki, a kompilator optymalizuje miejsce na wiersz, dzięki czemu kara za kod jest mniejsza, gdy pliki są spakowane do pliku gzip.
W moim kodzie źródłowym znajdują się informacje o prawach autorskich lub tekst licencji open source. Co zrobić, aby kompilator zamknięty nie usunął tego tekstu?
Kompilacja Closure obsługuje tag JSDoc@license. Dodaj tag @license do dowolnego komentarza JSDoc, aby zachować go w danych wyjściowych kompilatora. Więcej informacji znajdziesz w sekcji Dodawanie adnotacji do JavaScriptu kompilatora.