2015-06-26 11 views
8

Sto usando IntelliJ 14.1.4 per creare un'applicazione JavaScript. Per il debug, accendo un server web usando Gulp. Quindi accendo il debug di JavaScript e mi collego con Chrome (tramite il plugin). Posso eseguire il debug del "normale" JavaScript in questo modo ma quando si utilizzano le mappe di origine (create da browserify), IntelliJ non attiva più i punti di interruzione. Se utilizzo gli strumenti di debug di Chrome, tutto funziona come previsto ma IntelliJ non sembra in grado di tradurre i suoi punti di rottura.Abilita il debug di JavaScript con IntelliJ e le mappe di origine

C'è un modo per farlo funzionare? Ho trascorso un po 'di tempo a ricercare il problema e, per quanto ho capito, IntelliJ supporta le mappe sorgente. Inoltre, sono stato in grado di eseguire il debug di JavaScript generato da GWT utilizzando questo approccio che utilizza anche le mappe di origine.

Aggiornamento: Sembra che ci sia un current issue for this problem. Se qualche workarround è noto, sono felice di sentire una soluzione.


La risposta sotto risolve il problema. Ecco come ho impostato il mio sorso di compilazione:

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

con ./build essere la mia cartella di build e ../src essendo la radice dei file di origine JavaScript, relativo alla cartella di compilazione.

+1

questo non ha funzionato per me. Se ho controllato il tag scripts nel debugger in webstorm, mostra gli script e gli url visti lì funzionano anche nel browser. ('.bundle(). pipe (exorcist ('./ dist/bundle.js.map', null,"/src ",". ") è la mia chiamata). Ma i punti di interruzione non vengono mai colpiti. Io uso il server interno da WebStorm. – thst

risposta

2

La soluzione corrente consiste nell'utilizzare exorcist per generare mappe di origine esterne. Puoi impostare il percorso di base per valutare i percorsi con il parametro -b, maggiori informazioni nei loro documenti.

A titolo di esempio, ecco cosa mia chiamata a watchify assomigliare:

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' 

essere consapevoli del fatto che i plugin e trasforma potrebbero uscita percorsi strani quando in filodiffusione insieme; se le tue segnaletiche non funzionano, assicurati che browserify o watchify pubblichino correttamente il percorso. Una volta ho avuto l'output di browserify invece di "../../js/tests/karma/unit/Calculator.spec.ts", rendendo le mie mappe inutili.

Problemi correlati