This is now available, sample implementation for a plugin https://github.com/NodeBB/nodebb-plugin-friends/commit/6e6f2f45b1ebf42cb1d688070c777a02eda1fd4a.
Thanks @Antosik
0@José-Ángel-Rey-Liñares note that only Visual Studio Code works right out of the box, Visual Studio itself does not.
@Schamper I have just tried Visual Studio Code, and i keep getting the same error EADDERINUSE. Could you tell me what version of node are you running? Thanks!
@José-Ángel-Rey-Liñares I was getting the same error with the master version of NodeBB then I tried a fresh install of NodeBB 0.7.x and got it working without changing any settings
PS. I'm using Visual Studio Code 0.3.0
@agarcia17 thanks, will give it a try.
@agarcia17 i've just tried with visual studio code 0.3.0 and nodebb master on commit 96526a37a3cd64a866f3fc14a71cc327234d9a7d. And i'm getting the same EADDERINUSE; maybe could you point something I miss?
I've been struggling with this all day and no luck.
Even when I run from the command line I still get the error:
@Fidelix same here.
Apparently this happens when NodeBB uses async.parallel().
If you disable the minifier, the error will happen with the templates system, sound system, and so on.
Sorry for bumping this up, but i haven't managed to get any of the suggested debug tools working with nodebb.
Has someone managed to use them recently? Any help?
Thanks!
So, I hope I'm not speaking too soon, but this should get you guys up and running (OSX Yosemite)
So far what I've done is:
upgrade to node 0.12.5 (0.12.x should be sufficient)
install node-inspector
if like me you had already installed node-inspector and nodeBB prior to upgrading to node 0.12.x, you'll have to rebuild your node packages:
npm rebuild
npm rebuild
npm install -g node-inspector
) so I had to go to /usr/local/lib/node_modules/node_inspector
and run npm rebuild
Start nodebb in development mode: (in NodeBB root dir): ./nodebb dev
In a new terminal, run node-inspector &
(spins up as a background process, so if something goes wrong, use ps aux | grep node-inspector
to find the pid and kill it)
this will output something like
Visit http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858 to start debugging.
Press enter to get back to the command line
Type ps aux | grep app.js
:
brian 79177 0.0 0.0 2432772 660 s006 R+ 10:03PM 0:00.00 grep app.js
brian 79089 0.0 1.1 3763608 183804 s005 S+ 9:41PM 0:04.91 /usr/local/Cellar/node/0.12.5/bin/node app.js
the pid for NodeBB is 79089 in my case, so I just send a kill -s USR1 79089
and you should see this in the terminal where you spun up ./nodebb dev:
Starting debugger agent.
Debugger listening on port 5858
Go load the address you got from node-inspector in your browser ^ (it might take a second to load)
Set a breakpoint somewhere (that you know how to hit) and you should be up and running!
Now you can also just ctrl-C to quit the nodeBB process. If you want to start it again:
./nodebb dev
againps aux | grep app.js
to find the pid againkill -s USR1 <pid>
to the new pid of the running nodebb instance, and refresh the browser window that had the debugger open originally@BDHarrington7 thank you very much. I will try it this afternoon.
@BDHarrington7 Worked like a charm. Thank you very very much!!!
@BDHarrington7
Works perfectly, thanks!
One tip to further speed things up:
NodeBB is actually so nice to let you know its PID
14/7 22:31 [31656] - info: NodeBB Ready
Captured in the docs!
@BDHarrington7
I am in need of stepping through the spin-up process (loading plugins). Have you tried something like that?
My next step would be to figure out if we can start the debugger agent somewhere in nodebb
or loader.js
, before the worker is forked off.
Everything still very vague though. I'm new to this debugging thing. Up until now console.log always was enough. Currently, I'm fiddling with gdb, which strikes me as being a bit over the top.
I haven't found a good solution to that, unfortunately. It seems like the node-inspector has to load the files first before it can pause the program, so you'd have to pause the program first before loading node-inspector... I'd have to play around with it some more
this command makes it a little easier to send the USR1 signal to the process:
kill -s USR1 `ps aux | grep app.js | grep -v grep | awk '{ print $2 }'`
@BDHarrington7
Use pgrep/pkill!
kill -s USR1 $(fgrep -f "app.js")
or even shorter with pkill
pkill -USR1 -f "app.js"
Substitute -USR1
with -SIGHUP
and you got yourself a quick and easy build-tool command to restart NodeBB, when changing files.
(I'm using SublimeText / Atom)