Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/buggerjs/bugger
Bugs bugging you? Bug back.
https://github.com/buggerjs/bugger
Last synced: 3 months ago
JSON representation
Bugs bugging you? Bug back.
- Host: GitHub
- URL: https://github.com/buggerjs/bugger
- Owner: buggerjs
- License: mit
- Created: 2013-03-11T12:38:56.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-12-12T20:32:36.000Z (about 8 years ago)
- Last Synced: 2024-04-27T13:19:20.173Z (10 months ago)
- Language: JavaScript
- Size: 2.65 MB
- Stars: 156
- Watchers: 9
- Forks: 8
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-repos - buggerjs/bugger - Bugs bugging you? Bug back. (JavaScript)
README
# bugger
[![Build Status](https://travis-ci.org/buggerjs/bugger.png)](https://travis-ci.org/buggerjs/bugger)
**Warning: Experimental**
`bugger` provides Chrome Devtools bindings for node.
It integrates tightly with Chrome which means two things:* It attempts to fully support the usual Devtools experience, including workspaces and profiling tools.
* It may break at any moment because Chrome moves fast.## Installation
```bash
npm install -g bugger
```## Usage
### Start the script process
Start `example/alive.js` in debug mode:
```sh
bugger example/alive.js
```Pass parameters to the script:
```sh
# This will be interpreted as a port paramter for alive.js
bugger example/alive.js --port=3000
# This will be interpreted as a port paramter for bugger itself
bugger --port=3000 example/alive.js
```Pass V8 options (or advanced node options):
```sh
node --trace_gc $(which bugger) example/alive.js
```### Open the devtools
The correct URL will be written to the output. It should look similar to this:
chrome-devtools://devtools/bundled/devtools.html?ws=127.0.0.1:8058/websocket
You can also open `chrome://inspect` if you started Chrome with `--remote-debugging-targets=localhost:8058`.
The process should pop up on that page almost immediately.## Options:
* `-v, --version`: Print version information
* `-h, --help`: Show usage help
* `-p, --port`: The devtools protocol port to use, default: 8058
* `-b, --brk`: Pause on the first line of the script## Examples:
Using bugger with popular frameworks is easy and it is a lot faster then using node-inspector.### Jest:
Run `node` with bugger and jest:
```bash
node --harmony $(which bugger) ./node_modules/jest-cli/bin/jest.js --runInBand
```
A chrome devtools URL will appear in console, just copy and paste it into chrome.### Mocha:
Run bugger it with `_mocha`:
```bash
bugger --brk $(which _mocha)
```
A chrome devtools URL will appear in console, just copy and paste it into chrome.## Features
### Console Tab
- Basic support for console API
- Evalute expressions in the console
- Fully featured repl when not paused (including require)
- Parts of the [Command Line API](https://developers.google.com/web/tools/chrome-devtools/debug/command-line/command-line-reference) supported### Sources Tab
- Step-by-step debugging
- Variable introspection
- Live edit the running JavaScript code and persist it using workspaces (really just a Devtools feature)
- Break on [uncaught] exception
- Uses existing source maps (e.g. created via `babel --source-maps` or `coffee --map`)
- [Forked modules](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options) show up as worker threads. This includes modules forked via `cluster`.#### Known Issues
- For `babel-core/register` and `coffee-script/register`, editing the files doesn't work [#48](https://github.com/buggerjs/bugger/issues/48)
### Network Tab
- Monitor outgoing http(s) requests your script does
- Timing of requests, including connect times etc.### Timeline Tab
- GC events
- Basic heap usage graphs#### Known Issues
- The timeline tab doesn't do anything useful right now. In future it should show ([#47](https://github.com/buggerjs/bugger/issues/47)):
* `console.{time, timeEnd, timeStamp}`
* Network request
* Heap usage over time
* Profiling data### Profiles Tab
- Heap snapshots
- CPU profiles
- Track heap allocations
- [Inspect heap objects in the console via `$0..$4`](https://developers.google.com/web/tools/chrome-devtools/debug/command-line/command-line-reference#section-1)## Kudos to...
### ...the original projects
bugger was heavily inspired by [node-inspector](https://github.com/node-inspector/node-inspector) and
[nodebug](https://github.com/billyzkid/nodebug).## Reference links
- https://chromium.googlesource.com/chromium/blink.git
- http://chromedevtools.github.io/debugger-protocol-viewer/Debugger/
- https://github.com/nodejs/node