2016-06-28 20 views
2

Ich habe die neueste Version von 1.2 von vscode und 1,8 von Typoskript. Ich habe jede mögliche Kombination von launch.json ausprobiert, beide vom Typ 'node' und 'chrome', aber ich muss noch eine Kombination finden, die alle Felder innerhalb von vscode selbst füllt. Ich bekomme das Programm meistens zum Starten, aber innerhalb von VScode selbst findet kein Debugging statt. Ich habe mich gefragt, ob jemand ein funktionierendes Beispiel für das Debuggen eines Typoskript-Elektronenprogramms in vscode hatte? Oder ist das nicht möglich?Debug typescript Elektronenprogramm in vscode

Jede Hilfe würde sehr geschätzt werden!

Update

Ich habe jetzt die Konsole innerhalb vscode die Debug-Ausgabe von Elektronen bereitstellt - aber noch keine Variable oder andere Ausgabe - das ist meine aktuelle launch.json:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "name": "Debug", 
      "type": "chrome", 
      "request": "launch", 
//   "program": "${workspaceRoot}/src/main.ts", 
//   "program": "${workspaceRoot}/bin/main.js", 
//   "stopOnEntry": false, 
//   "args": [], 
//   "cwd": "${workspaceRoot}", 
      "sourceMaps": true, 
//   "preLaunchTask": "build", 
//   "externalConsole": false, 
//   "outDir": "${workspaceRoot}/bin", 
      "runtimeExecutable": "${workspaceRoot}/node_modules/electron-prebuilt/dist/electron.exe", 
      //"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd", 
      // Optional arguments passed to the runtime executable. 
      "runtimeArgs": [ 
//    "--enable-logging", 
//    "--nolazy", 
       "--remote-debugging-port=9222", 
       "--host-rules='MAP * 127.0.0.1'", 
       "${workspaceRoot}" 
//   ], 
      ] 
      // Environment variables passed to the program. 
//   "env": { 
//    "NODE_ENV": "development" 
//   } 

     } 
} 

Antwort

0

Diese funktioniert bei mir. Außer ich benutze kein Typoskript.

{ 
"version": "0.2.0", 
"configurations": [ 
    { 
     "name": "Launch Electron", 
     "type": "node", 
     "request": "launch", 
     "program": "${workspaceRoot}/index.js", 
     "stopOnEntry": false, 
     "args": [], 
     "cwd": "${workspaceRoot}", 
     "preLaunchTask": null, 
     "runtimeExecutable": "${workspaceRoot}/node_modules/electron-prebuilt/dist/electron.exe", 
     "runtimeArgs": [], 
     "env": {}, 
     "externalConsole": false, 
     "sourceMaps": false, 
     "outDir": null 
    } 

Ich kann in meinem „index.js“ einen Haltepunkt setzen, ich in den Debug-Bereich gehen, wählen Sie „Launch Electron“, drücken Sie F5 und meine Breakpoint wird hit.I leite vscode (1.2.1) unter Windows 10,

+1

tut, Debuggen Sie sowohl den Hauptprozess als auch den Renderer-Prozess? Mein Problem damit war, dass es nur den Hauptprozess abdeckte. – ehiller

+0

@ehiller, Nein, es debuggt nicht Renderer-Prozess. – Deilan

5

Nach ein paar Stunden Headbanging und einigen Github-Tickets habe ich festgestellt, wie man sowohl den Haupt- als auch den Renderer-Prozess debuggt, UND Typoskript verwendet.

ist Meine app als strukturierte:

electron 
| - src (source files) 
| - dist (built files) 

gulpfile.js Aufgabe Typoskript mit Quellenkarten zu generieren:

gulp.task('electron:transpile:ts',() => { 
var ts = require('gulp-typescript'); 
var project = ts.createProject('./tsconfig.json'); 
var tsResult = project.src() 
    .pipe(sourcemaps.init()) 
    .pipe(project()); 

return tsResult.js 
    .pipe(sourcemaps.write('.', { 
     sourceRoot: './' 
    })) 
    .pipe(gulp.dest('./dist')); 
}); 

launch.json für VS-Code:

{ 
"version": "0.2.0", 
"configurations": [ 
    { 
     "name": "Debug main process", 
     "type": "node", 
     "request": "launch", 
     "program": "${workspaceRoot}/src/main.ts", 
     "stopOnEntry": false, 
     "args": [], 
     "cwd": "${workspaceRoot}/dist", 
     "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd", 
     "runtimeArgs": [ 
      "--enable-logging" 
     ], 
     "env": {}, 
     "sourceMaps": true, 
     "outFiles": [ 
      "${workspaceRoot}/dist/**/*.js" 
     ], 
     "internalConsoleOptions": "openOnSessionStart", 
     "console": "integratedTerminal", 
     "preLaunchTask": "build" 
    }, 
    { 
     "name": "Debug renderer process", 
     "type": "chrome", 
     "request": "launch", 
     "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd", 
     "runtimeArgs": [ 
      "${workspaceRoot}/dist", 
      "--enable-logging", 
      "--remote-debugging-port=9222" 
     ], 
     "webRoot": "${workspaceRoot}/dist", 
     "sourceMaps": true, 
     "internalConsoleOptions": "openOnSessionStart" 
    } 
] 
} 
+1

Eine kurze Anmerkung für den Fall, dass Sie webpack verwenden und keine Haltepunkte setzen können, da das sourceMapping nicht funktioniert. Ich hatte einige Mapping-Überschreibungen zu setzen, in meinem Fall: ' "sourceMapPathOverrides": { "webpack: ///./*": "$ {workspaceRoot}/Renderer/*" }, ' Wo Renderer ist das Verzeichnis, das meinen Quellcode für den Renderer-Code enthält. Spielen Sie mit dem '.scripts' debug-Befehl, um zu sehen, wie Mappings gesetzt sind. –

+0

Das Hinzufügen der Renderer-Prozess Startkonfiguration funktionierte für mich! Vielen Dank für das Teilen :) – misaka

Verwandte Themen