Debugger UI for the main Electron process
This package wraps node-inspector
, which can be used to debug JavaScript
code running in the main Electron process. Getting node-inspector
running can require somewhere
between a little and a lot of effort depending on the Electron
version you wish to debug. The goal of electron-inspector
is to get node-inspector
running
with minimum effort on your part.
- NPM v3
- NodeJS v4.5 (or later)
electron
, orelectron-prebuilt
, orelectron-prebuilt-compile
electron-rebuild
(optional)
electron-inspector
should be installed as a local dev dependency of your Electron app:
npm install electron-inspector --save-dev
The easiest way to run the inspector in a cross-platform manner is to add an NPM script to your
package.json
, for example:
"scripts": {
"inspect-main": "electron-inspector"
}
Then run the inspect-main
script on the command line with:
npm run inspect-main
Alternatively, if you don't want to mess with your package.json
you can directly execute
electron-inspector
(macOS / Linux), or .\\node_modules\\.bin\\electron-inspector
(Windows).
On startup electron-inspector
will check for compatibility of the native modules in
node-inspector
with the Electron version you wish to debug, if the compatibility check
fails and electron-rebuild
is installed then the native modules will be automatically
rebuilt. You can disable auto-rebuild using the --no-auto-rebuild
command line option.
When electron-inspector
finally gets node-inspector
running you will see a URL printed to the
console window. For example:
Visit http://127.0.0.1:8080/?port=5858 to start debugging.
You can then start Electron in debug mode and open the given URL in your browser.
- Somewhere around Chrome 54 the DevTools front-end in
node-inspector
started crashing on startup because it hasn't been updated in quite a while.electron-inspector
contains a workaround for the crash but upon opening the DevTools front-end you'll seeError: No NativeModule in target scope
printed out in the console, ignore it. - On some systems when you launch Electron with the
--debug-brk
flag in order to pause execution on the first line of code it may look like the DevTools front-end never actually loads your app code. In this case your app is actually paused on the first line of code, it's just that the front-end wasn't refreshed to reflect that fact. You can force the DevTools front-end to refresh by pressing thePause script execution (F8)
button.
node-inspector
can be configured in multiple ways, electron-inspector
will pass through most of the supported command line options.
electron-inspector
accepts most of the commandline options node-inspector
does:
Option | Alias | Default | Description |
---|---|---|---|
--help |
Display information about the available options. | ||
--auto-rebuild |
true |
Toggle automatic rebuild of native node-inspector modules, this only works if
electron-rebuild is installed.
|
|
--electron |
Path to the Electron executable that should be used to run node-inspector .
|
||
node-inspector | |||
--config |
Path to file with node-inspector config information.
|
||
--debug-port |
-d
|
5858 | Debug port of the Electron process you wish to debug. |
--web-host |
0.0.0.0 |
Host to listen on for node-inspector web interface, 127.0.0.1 by
default.
|
|
--web-port |
-p
|
8080 |
Port to listen on for node-inspector web interface.
|
--save-live-edit |
false | Save live edit changes to disk (update the edited files). | |
--preload |
true |
Preload *.js files. You can disable this option to speed up the startup.
|
|
--inject |
true |
Enable injection of debugger extensions into the debugged process. It's possible disable only
part of injections using subkeys, e.g. --no-inject.network .
Allowed keys: network , profiles , console .
| |
--hidden |
Array of files to hide from the UI, breakpoints in these files will be ignored. All paths are interpreted as regular expressions. | ||
--stack-trace-limit |
50 | Number of stack frames to show on a breakpoint. | |
--ssl-key |
Path to file containing a valid SSL key. | ||
--ssl-cert |
Path to file containing a valid SSL certificate. |
MIT