Debugowanie JS w Firefoksie

Nie wiem, jak to się stało, ale dopiero niedawno odkryłem debugowanie skryptów JS w przeglądarce (a konkretniej w Firefoksie). Po tylu latach zwróciłem uwagę na taką możliwość w narzędziach deweloperskich, a gdy zacząłem drążyć temat okazało się, że jest to niesamowicie wygodne i proste w użyciu.

W większości przypadków wystarczy po prostu uruchomić narzędzia deweloperskie w przeglądarce, wskazać interesujący nas plik i założyć w nim breakpointy. Przeglądarka po osiągnięciu wskazanego miejsca w kodzie po prostu wstrzyma jego wykonywanie i pozwoli nam na dalsze przetwarzanie krok po kroku, wraz z podglądem kontekstu, śledzeniem określonych zmiennych, itd.

Przy używaniu debuggera zauważyłem, że nie wszystkie pliki są widoczne na liście źródeł. To jednak też łatwo rozwiązać – wystarczy w dynamicznie ładowanym pliku JS umieścić odpowiednią adnotację.

Również w przypadku często stosowanej minifikacji skryptów nie będzie problemów z debugowaniem – firefoksowy debugger ma wbudowany prettyfier, który sformatuje zminifikowany kod do czytelnej konwencji.

Uruchomienie starego kodu na nowych wersjach jQuery

UWAGA! Ten wpis ma już 7 lat. Pewne stwierdzenia i poglądy w nim zawarte mogą być nieaktualne.

Jeżeli w swoich projektach masz dużo legacy kodu napisanego w JS z użyciem starych wersji biblioteki jQuery, a nie chcesz/nie możesz w danej chwili przepisać jego części niedziałających w nowszych wersjach – polecam zacząć migrację od pluginu jquery-migrate.

Plugin ten wykrywa i przywraca usunięte od wersji 1.9 funkcje jQuery, dzięki czemu stary kod wykona się poprawnie na nowych, niekompatybilnych wstecz wersjach biblioteki.

Oczywiście podpięcie go powinno być stanem przejściowym do czasu pełnej migracji i przepisania wywołań usuniętych funkcji. Sam plugin doskonale w tym pomaga dzięki możliwości generowania ostrzeżeń przy każdym wywołaniu nieobsługiwanej w nowej wersji funkcji. Można dzięki temu korzystać natychmiast z nowych wersji jQuery, stopniowo przepisując stary kod na podstawie zaraportowanych wywołań.