electron-inspector icon indicating copy to clipboard operation
electron-inspector copied to clipboard

Debugger UI for the main Electron process

electron-inspector

Debugger UI for the main Electron process

Overview

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.

Prerequisites

Quick Start

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.

Known Bugs

  • 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 see Error: 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 the Pause script execution (F8) button.

Bugs

Configuration

node-inspector can be configured in multiple ways, electron-inspector will pass through most of the supported command line options.

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.

License

MIT