schangxiang@126.com
2025-09-19 0821aa23eabe557c0d9ef5dbe6989c68be35d1fe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# inspector-proxy
 
node inspector proxy
 
[![NPM version][npm-image]][npm-url]
[![Build Status][travis-image]][travis-url]
[![Appveyor status][appveyor-image]][appveyor-url]
[![Coverage Status][coveralls-image]][coveralls-url]
 
[npm-image]: https://img.shields.io/npm/v/inspector-proxy.svg?style=flat-square
[npm-url]: https://npmjs.org/package/inspector-proxy
[travis-url]: https://travis-ci.org/whxaxes/inspector-proxy
[travis-image]: http://img.shields.io/travis/whxaxes/inspector-proxy.svg
[appveyor-url]: https://ci.appveyor.com/project/whxaxes/inspector-proxy/branch/master
[appveyor-image]: https://ci.appveyor.com/api/projects/status/github/whxaxes/inspector-proxy?branch=master&svg=true
[coveralls-url]: https://coveralls.io/r/whxaxes/inspector-proxy
[coveralls-image]: https://img.shields.io/coveralls/whxaxes/inspector-proxy.svg
 
## Usage
 
```bash
$ npm i inspector-proxy -g
```
 
CLI
 
```bash
# base usage
$ inspector-proxy ./test.js
 
# appoint port
$ inspector-proxy --proxy=9228 --debug=9888 ./test.js
```
 
```bash
# exec by node
$ node --inspect ./test.js
 
# start a inspect proxy in other terminal
$ inspector-proxy --proxy=9228
```
 
Using in code
 
```js
const InspectorProxy = require('inspector-proxy');
const cfork = require('cfork');
const proxy = new InspectorProxy({ port: 9229 });
 
// use cfork to inspect file
cfork({
  exec: './test.js',
  execArgv: [ '--inspect' ],
  count: 1,
  refork: true,
}).on('fork', worker => {
  let port;
  // match debug port from argv
  worker.process.spawnargs
    .some(arg => {
      let matches;
      // node-6: --inspect=9888
      // node-8: --inspect-port=9888
      if (arg.startsWith('--inspect') && (matches = arg.match(/\d+/))) {
        port = matches[0];
        return true;
      }
      return false;
    });
 
  proxy.start({ debugPort: port })
    .then(() => {
      console.log(`\nproxy url: ${proxy.url}\n`);
    });
});
```
 
## Log Explanation
 
```bash
# inspector server opened
9229 opened
 
# inspector server closed
9229 closed
 
# inspector has been attached
Debugger attached
```
 
## Debug log
 
```bash
$ DEBUG=*-proxy inspector-proxy ./test.js
```
 
## License
 
MIT
 
---
 
![](./screen.gif)