2015-06-26 11 views
8

Ich verwende IntelliJ 14.1.4 zum Erstellen einer JavaScript-Anwendung. Zum Debuggen starte ich einen Webserver mit Gulp. Ich starte dann das JavaScript-Debugging und verbinde mich mit Chrome (über das Plugin). Ich kann "normales" JavaScript auf diese Weise debuggen, aber wenn Quellkarten (erstellt von browserify) verwendet werden, löst IntelliJ die Haltepunkte nicht mehr aus. Wenn ich die Debugging-Tools von Chrome verwende, funktioniert alles wie erwartet, aber IntelliJ scheint seine Breakpoints nicht zu übersetzen.JavaScript-Debugging mit IntelliJ und Quellkarten aktivieren

Gibt es eine Möglichkeit, dies zu funktionieren? Ich habe viel Zeit damit verbracht, das Problem zu untersuchen, und soweit ich es verstehe, unterstützt IntelliJ Quellkarten. Außerdem war ich in der Lage, GWT-generiertes JavaScript mit diesem Ansatz zu debuggen, der auch Quellkarten verwendet.

Update: Es scheint, als gäbe es eine current issue for this problem. Wenn irgendein Workarround bekannt ist, bin ich glücklich, eine Lösung zu hören.


Die folgende Antwort löst das Problem. Hier ist, wie ich meinen schluck build einrichten:

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

mit ./build mein Buildordner zu sein und ../src sind die Wurzel der JavaScript-Quelldateien, bezogen auf die Build-Ordner.

+1

das hat nicht für mich funktioniert. Wenn ich das scripts-Tag im Debugger in webstorm überprüfte, zeigt es an, dass die Skripte und die dort angezeigten URLs auch im Browser funktionieren. ('.bundle(). pipe (exorcist ('./ dist/bundle.js.map', null,"/src ",". "))' ist mein Aufruf). Aber die Breakpoints werden nie getroffen. Ich benutze den internen Server von WebStorm. – thst

Antwort

2

Die aktuelle Problemumgehung besteht darin, exorcist zu verwenden, um externe Quellzuordnungen zu generieren. Sie können den Basispfad festlegen, um Pfade mit dem Parameter -b auszuwerten. Weitere Informationen finden Sie in den zugehörigen Dokumenten.

Als Beispiel ist hier, was mein Anruf aussieht watchify wie:

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' 

Beachten Sie, dass Plug-Ins und Transformationen könnten seltsame Pfade ausgegeben, wenn sie zusammen geleitet; Wenn Ihre Quellkarten nicht funktionieren, vergewissern Sie sich, dass browserify oder wikefy den Pfad korrekt ausgibt. Ich hatte einmal "../../js/tests/karma/unit/js/tests/karma/unit/Calculator.spec.ts" anstelle "../../js/tests/karma/unit/Calculator.spec.ts" browserfy Ausgang, meine Karten verursachend, nutzlos zu sein.

Verwandte Themen