inspector-proxy

node inspector proxy

Usage no npm install needed!

<script type="module">
  import inspectorProxy from 'https://cdn.skypack.dev/inspector-proxy';
</script>

README

inspector-proxy

node inspector proxy

NPM version Build Status Appveyor status Coverage Status

Usage

$ npm i inspector-proxy -g

CLI

# base usage
$ inspector-proxy ./test.js

# appoint port
$ inspector-proxy --proxy=9228 --debug=9888 ./test.js
# exec by node
$ node --inspect ./test.js

# start a inspect proxy in other terminal
$ inspector-proxy --proxy=9228

work with nodemon

$ nodemon --exec 'inspector-proxy ./test.js'

Using in code

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

# inspector server opened
9229 opened

# inspector server closed
9229 closed

# inspector has been attached
Debugger attached

Debug log

$ DEBUG=*-proxy inspector-proxy ./test.js

License

MIT