You can install portfinder using a package manager like npm, yarn, or bun:
npm install portfinder
The portfinder module has a simple interface:
const portfinder = require('portfinder'); portfinder.getPort(function (err, port) { // // `port` is guaranteed to be a free port // in this scope. // });
Or using promises:
const portfinder = require('portfinder'); portfinder.getPortPromise() .then((port) => { // // `port` is guaranteed to be a free port // in this scope. // }) .catch((err) => { // // Could not get a free port, `err` contains the reason. // });
By default portfinder will start searching from 8000 and scan until maximum port number (65535) is reached.
You can change this globally by setting:
portfinder.setBasePort(3000); // default: 8000 portfinder.setHighestPort(3333); // default: 65535
or by passing optional options object on each invocation:
portfinder.getPort({ port: 3000, // minimum port stopPort: 3333 // maximum port }, callback);
npm test