2015-06-26 15 views
8

Używam IntelliJ 14.1.4 do tworzenia aplikacji JavaScript. W celu debugowania uruchamiam serwer WWW przy użyciu Gulpa. Następnie uruchamiam debugowanie JavaScriptu i łączę się z Chrome (za pomocą wtyczki). Mogę w ten sposób debugować "normalny" JavaScript, ale kiedy używam map źródłowych (utworzonych przez browserify), IntelliJ nie uruchamia już punktów przerwania. Jeśli używam narzędzi do debugowania Chrome, wszystko działa zgodnie z oczekiwaniami, ale IntelliJ wydaje się nie być w stanie tłumaczyć punktów przerwania.Włączanie debugowania JavaScriptu za pomocą IntelliJ i map źródłowych

Czy istnieje sposób, aby to zadziałało? Spędziłem sporo czasu na badaniu problemu i, o ile go rozumiem, IntelliJ obsługuje mapy źródłowe. Ponadto mogłem debugować wygenerowany GWT JavaScript przy użyciu tego podejścia, które również korzysta z map źródłowych.

Aktualizacja: Wygląda na to, że istnieje current issue for this problem. Jeśli znane jest jakiekolwiek doświadczenie, z przyjemnością wysłucham rozwiązania.


Poniższa odpowiedź rozwiązuje problem. Oto w jaki sposób skonfigurować moje haustem produkcji:

bundler.bundle() 
    .pipe(exorcist('./build/bundle.js.map', null, null, '../src')) 

z ./build jest mój folder build i ../src jest korzeniem plików źródłowych JavaScriptu, w stosunku do folderu kompilacji.

+1

to nie działa dla mnie. Jeśli sprawdziłem tag skryptów w debuggerze w Webstorm, pokazuje on skrypty i adresy URL, które tam widziałem działają również w przeglądarce. ('.bundle(). pipe (egzorcysta ('./ dist/bundle.js.map', null,"/src ",". ")) jest moim wezwaniem). Ale punkty przerwania nigdy nie zostają trafione. Używam wewnętrznego serwera z WebStorm. – thst

Odpowiedz

2

Obecne obejście polega na użyciu exorcist do generowania zewnętrznych map źródłowych. Możesz ustawić ścieżkę podstawową do oceniania ścieżek za pomocą parametru -b, więcej informacji w ich dokumentach.

Jako przykład, oto co moje wezwanie do watchify wygląda następująco:

bin/watchify -d -v -p [tsify --target es5] -t debowerify js/tests/karma/**/*.ts -o 'bin/exorcist -b "js/compiled/" js/compiled/tests.js.map > js/compiled/tests.js' 

Należy pamiętać, że wtyczki i transformacje mogą wyjść dziwne ścieżki kiedy wyprowadzony razem; jeśli twoje sourcemaps nie działają, upewnij się, że przeglądasz lub monitorujesz wyprowadzanie ścieżki poprawnie. Raz przeprowadziłem przeglądarkę z wynikiem "../../js/tests/karma/unit/js/tests/karma/unit/Calculator.spec.ts" zamiast "../../js/tests/karma/unit/Calculator.spec.ts", co powoduje, że moje mapy są bezużyteczne.

Powiązane problemy