ndb is an improved debugging experience for Node.js, enabled by Chrome DevTools
ndb is an improved debugging experience for Node.js, enabled by Chrome DevTools
Compatibility: ndb requires Node >=8.0.0. It works best with Node >=10.
Installation: ndb depends on Puppeteer which downloads a recent version of Chromium (~170MB Mac, ~280MB Linux, ~280MB Win).
# global install with npm:
npm install -g ndb
# alternatively, with yarn:
yarn global add ndb
Global installation may fail with different permission errors, you can find help in this thread.
Windows users: Installation may fail on Windows during compilation the native dependencies. The following command may help: npm install -g windows-build-tools
If you want ndb available from an npm script (eg. npm run debug
runs ndb index.js
), you can install it as a development dependency:
# local install with npm:
npm install --save-dev ndb
# alternatively, with yarn:
yarn add ndb --dev
You can then set up an npm script. In this case, ndb will not be available in your system path.
You can start debugging your Node.js application using one of the following ways:
ndb
instead of the node
commandndb server.js
# Alternatively, you can prepend `ndb`
ndb node server.js
ndb
in front of any other binary# If you use some other binary, just prepend `ndb`
## npm run unit
ndb npm run unit
# Debug any globally installed package
## mocha
ndb mocha
# To use a local binary, use `npx` and prepend before it
ndb npx mocha
ndb
as a standalone application
package.json
, e.g. unit tests# cd to your project folder (with a package.json)
ndb .
# In Sources panel > "NPM Scripts" sidebar, click the selected "Run" button
Use Ctrl
/Cmd
+ R
to restart last run
Run any node command from within ndb's integrated terminal and ndb will connect automatically
Run any open script source by using 'Run this script' context menu item, ndb will connect automatically as well
Use --prof
flag to profile your app, Ctrl
/Cmd
+ R
restarts profiling
ndb --prof npm run unit
ndb
has some powerful features exclusively for Node.js:
_stream_wrap.js
, async_hooks.js
, fs.js
) This behaviour may be changed by "Blackbox anything outside working dir" setting.In addition, you can use all the DevTools functionality that you've used in typical Node debugging:
Check out contributing guide to get an overview of ndb development.
ndb
In early 2011, @smtlaissezfaire released the first serious debugger for Node.js, under the ndb
package name. It's still preserved at github.com/smtlaissezfaire/ndb. We thank Scott for generously donating the package name.