An open API service indexing awesome lists of open source software.

https://github.com/enlight/electron-inspector

Debugger UI for the main Electron process
https://github.com/enlight/electron-inspector

electron

Last synced: about 1 year ago
JSON representation

Debugger UI for the main Electron process

Awesome Lists containing this project

README

          

# electron-inspector
Debugger UI for the main Electron process

## Overview

This package wraps [`node-inspector`][node-inspector-npm], 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][node-inspector-electron-v13x] 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.

[node-inspector-npm]: https://www.npmjs.com/package/node-inspector
[node-inspector-electron-v13x]: http://vadim.macagon.com/blog/2016/09/11/rebuilding-node-inspector-for-electron-v13x/

## Prerequisites

- NPM v3
- NodeJS v4.5 (or later)
- [`electron`][electron-npm], or [`electron-prebuilt`][electron-prebuilt-npm], or [`electron-prebuilt-compile`][electron-prebuilt-compile-npm]
- [`electron-rebuild`][electron-rebuild-npm] (optional)

[electron-npm]: https://www.npmjs.com/package/electron
[electron-prebuilt-npm]: https://www.npmjs.com/package/electron-prebuilt
[electron-prebuilt-compile-npm]: https://www.npmjs.com/package/electron-prebuilt-compile
[electron-rebuild-npm]: https://www.npmjs.com/package/electron-rebuild

## Quick Start

`electron-inspector` should be installed as a local dev dependency of your Electron app:

```shell
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:

```json
"scripts": {
"inspect-main": "electron-inspector"
}
```

Then run the `inspect-main` script on the command line with:

```shell
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:

```shell
Visit http://127.0.0.1:8080/?port=5858 to start debugging.
```

You can then [start Electron in debug mode][electron-debug] and open the given URL in your browser.

[electron-debug]: http://electron.atom.io/docs/tutorial/debugging-main-process/#enable-debug-mode-for-electron

## 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](bugs.gif "Working around the bugs")

## Configuration

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

[node-inspector-config]: https://www.npmjs.com/package/node-inspector#configuration

### 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