node inspector proxy
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
test
.autod.conf.js
.eslintignore
.eslintrc
.gitignore
.travis.yml
History.md
LICENSE
README.md
appveyor.yml
index.d.ts
index.js
package.json
screen.gif

README.md

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