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
- Host: GitHub
- URL: https://github.com/enlight/electron-inspector
- Owner: enlight
- License: mit
- Created: 2016-09-12T10:35:40.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-12-07T04:47:19.000Z (over 9 years ago)
- Last Synced: 2024-08-11T00:47:49.380Z (almost 2 years ago)
- Topics: electron
- Language: TypeScript
- Homepage:
- Size: 137 KB
- Stars: 25
- Watchers: 3
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.

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