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-compileelectron-rebuild(optional)
electron-inspector should be installed as a local dev dependency of your Electron app:
npm install electron-inspector --save-devThe 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-mainAlternatively, 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-inspectorstarted crashing on startup because it hasn't been updated in quite a while.electron-inspectorcontains a workaround for the crash but upon opening the DevTools front-end you'll seeError: No NativeModule in target scopeprinted out in the console, ignore it. - On some systems when you launch Electron with the
--debug-brkflag 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
