2017-07-07 127 views
2

我試圖用VSCode(電子主進程,不渲染)調試我的電子僞造項目,但隨處可見錯誤。我安裝了具有所有依賴項的electron-forge包,並初始化我的項目。使用VSCode調試電子僞造應用程序

我跟着this指導和我launch.json爲VSCode是:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "type": "node", 
      "request": "launch", 
      "name": "Electron Main", 
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-forge-vscode-win.cmd", 
      "cwd": "${workspaceRoot}" 
     } 
    ] 
} 

但是,當我在VSCode打F5調試,我得到Attribute "runtimeExecutable" does not exist,因爲electron-forge在全球範圍內安裝,以便有在node_modules/.bin/ dir中沒有這樣的文件。

然後根據this我改變"runtimeExecutable"和我launch.json如下:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "type": "node", 
      "request": "launch", 
      "name": "Electron Main", 
      "runtimeExecutable": "electron-forge-vscode-win.cmd", 
      "cwd": "${workspaceRoot}" 
     } 
    ] 
} 

的COMAND行是:

electron-forge-vscode-win.cmd --debug-brk=17423 --nolazy 
√ Locating Application 
√ Preparing native dependencies 
√ Launching Application 

但仍然沒有發生。我的電子應用程序開始,但並沒有停止,因爲--debug-brk論據應該。

接下來,我添加了一行到我launch.json

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "type": "node", 
      "request": "launch", 
      "cwd": "${workspaceRoot}", 
      "name": "Electron Main", 
      "runtimeExecutable": "electron-forge-vscode-win.cmd", 
      "protocol": "inspector" 
     } 
    ] 
} 

使用此命令行啓動:

electron-forge-vscode-win.cmd --inspect=11172 --debug-brk 
√ Locating Application 
√ Preparing native dependencies 
√ Launching Application 

注:是一個隨機端口號

現在我收到此錯誤:Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: connect ECONNREFUSED 127.0.0.1:11172)

回答

3

我相信你需要添加 "protocol"="legacy" 要將啓動配置。這是假設您正在使用節點版本< 8。x

1

只需在協議後添加【"port": 11172】launch.json

my launch.json file

2

我得出結論,如果您使用電子僞造或電子編譯,您不能使用VSCode調試主電子過程。在這兩種情況下,VSCode調試器都會忽略斷點。該BrowserWindow直接出現,並出現在VSCode調試控制檯窗口下面的消息:

Debugging with inspector protocol because a runtime executable is set. 
c:\Users\paulk\OneDrive\dev\forge-debug/node_modules/.bin/electron.CMD --inspect=16988 --debug-brk . 
Debugger listening on ws://127.0.0.1:16988/9cead160-c448-4b33-a8a2-2dff6f51ed59 

有時,當我關閉瀏覽器窗口,在「關閉所有窗口」事件處理程序斷點被擊中。關閉窗口後,將出現在調試控制檯以下消息:

Debugger attached. 

這或許表明VSCode調試程序並不重視,直到BrowserWindow關閉後。

我認爲這個問題起源於電子編譯,電子鍛造使用。也許這與編譯動態有關。

使用VSCode來調試一個簡單的電子應用程序是一件輕而易舉的事情。此外,純電子在調試窗口發射不同信息:

Debugging with inspector protocol because a runtime executable is set. 
c:\Users\paulk\OneDrive\dev\electron-quick-start/node_modules/.bin/electron.CMD --inspect=37884 --debug-brk . 
Debugger listening on port 37884. 
Warning: This is an experimental feature and could change at any time. 

這表明普通的電子是利用連接到比確實電子編譯調試器的一種不同的方法。

這是一個遺憾,電子僞造不適用於VSCode主流程調試。這對我來說毫無用處。此外,電子僞造和電子編譯的開發人員似乎也沒有認爲這是一個問題。瞭解電子僞造和電子編譯的開發人員以及這些軟件包的用戶正在使用它們來調試主流程代碼是很有幫助的。

+0

顯然這是由電子預編譯(1.8.2-beta 3)使用的電子版本中的一個錯誤。見https://github.com/electron-userland/electron-forge/issues/401#issuecomment-354369382。 –

相關問題