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.
ndbIn 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.