choojs / bankai

:station: - friendly web compiler
Apache License 2.0
1.09k stars 102 forks source link

Enable node debugger with debug flag #450

Open tornqvist opened 6 years ago

tornqvist commented 6 years ago

This is a 🙋 feature

Checklist

Context

Debugging an app running on bankai (or bankai itself, for that matter) with just console.log isn't the most ergonomic experience and the debug option wasn't doing anything anyway (one has to set the DEBUG env variable to enable logs).

This adds the debug option which signals node to start listening for debuggers, optionally on a specific port. Though the port option isn't working for me, supposedly this is how it's intended to work (https://nodejs.org/api/process.html#process_process_debugport).

Semver Changes

Minor

Closes #441

s3ththompson commented 6 years ago

I've been doing a lot of manual node --inspect --inspect-brk node_modules/.bin/bankai but for me, this would be most usable with --inspect-brk.

goto-bus-stop commented 6 years ago

I like it! re ergonomics, we're supposed to send console.logs to a separate tab in the terminal ui but that is not implemented yet.

Figure people can just do DEBUG=bankai* bankai start if they want a few more logs.

goto-bus-stop commented 6 years ago

@s3ththompson's --inspect-brk suggestion makes sense to me, but I don't know how that would work once the JS is already running?

tornqvist commented 6 years ago

@s3ththompson does --inspect-brk make sense from a user perspective though? Seeing as it'd break in bankai source code, not in the app I am working on. We probably could inject a debug statement into the first line of the entry file but that'd be borderline dark arts.

s3ththompson commented 6 years ago

I use --inspect-brk to give myself time to open a dedicated Node window from chrome://inspect when I have a debug statement in my code but the code might exit before I can get the window open (when debugging a CLI like Bankai for example, rather than a server that's continuously responding to requests). Once I'm connected I just start execution again. Maybe this is a distinction between debugging bankai build and bankai start...

https://medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27

tornqvist commented 6 years ago

I hear you. When using bankai start I usually just resave a file after attaching a debugger to trigger a new build. That wouldn't work with bankai build. I'm not sure how we'd go about making that work though, as @goto-bus-stop pointed out, the process is already running.