Skip to content

GrinZero/node-network-devtools

Repository files navigation


Node Network Devtools

🔮 Use chrome network devtool to debugger nodejs

🦎 Similar web crawler experience to browsers

⚙️ Powered by CDP

NodeJs Chrome TypeScript


English | 简体中文

node-network-devtools

📖 Introduction

As you can see, the node program opened with the --inspect option does not support network tags because it does not proxy user requests. Node network devtools is designed to address this issue by allowing you to debug requests made by nodejs using the network tab of Chrome devtools, making the debugging process equivalent to a web crawler experience in the browser.

Node v22.6.0 experimentally supports network debugging. This library supports use before node v22.6.0, but the specific supported versions are unknown.

🎮 Features

  • HTTP/HTTPS
    • req/res headers
    • payload
    • json str response body
    • binary response body
    • stack follow
      • show stack
      • click to jump
        • base
        • Sourcemap
  • WebSocket
    • messages
    • payload
    • headers
  • Compatibility
    • commonjs
    • esmodule
    • Bun
    • Deno -- Maybe nice to PR to Deno
  • Undici
    • undici.request
    • undici.fetch

👀 Preview

img

📦 Quick Start

1. Install

# npm
npm install node-network-devtools -D
# or pnpm
pnpm add node-network-devtools -D
# or yarn
yarn add node-network-devtools -D

2. Usage

Just add the following code to the entry file of your project.

import { register } from 'node-network-devtools'

process.env.NODE_ENV === 'development' && register()

To stop debugging network requests and eliminate side effects, just use the return value of the register method for cleanup.

import { register } from 'node-network-devtools'

const unregister = register()
unregister()

Visitors