76 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # node-portfinder
 | |
| 
 | |
| [](https://github.com/http-party/node-portfinder/actions/workflows/ci.yml)
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
| You can install `portfinder` using a package manager like npm, yarn, or bun:
 | |
| 
 | |
| ``` bash
 | |
| npm install portfinder
 | |
| ```
 | |
| 
 | |
| ## Usage
 | |
| The `portfinder` module has a simple interface:
 | |
| 
 | |
| ``` js
 | |
| const portfinder = require('portfinder');
 | |
| 
 | |
| portfinder.getPort(function (err, port) {
 | |
|   //
 | |
|   // `port` is guaranteed to be a free port
 | |
|   // in this scope.
 | |
|   //
 | |
| });
 | |
| ```
 | |
| 
 | |
| Or using promises:
 | |
| 
 | |
| ``` js
 | |
| 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.
 | |
|     //
 | |
|   });
 | |
| ```
 | |
| 
 | |
| ### Ports search scope
 | |
| 
 | |
| By default `portfinder` will start searching from `8000` and scan until maximum port number (`65535`) is reached.
 | |
| 
 | |
| You can change this globally by setting:
 | |
| 
 | |
| ```js
 | |
| portfinder.setBasePort(3000);    // default: 8000
 | |
| portfinder.setHighestPort(3333); // default: 65535
 | |
| ```
 | |
| 
 | |
| or by passing optional options object on each invocation:
 | |
| 
 | |
| ```js
 | |
| portfinder.getPort({
 | |
|   port: 3000,    // minimum port
 | |
|   stopPort: 3333 // maximum port
 | |
| }, callback);
 | |
| ```
 | |
| 
 | |
| ## Run Tests
 | |
| ``` bash
 | |
| npm test
 | |
| ```
 | |
| 
 | |
| #### Author: [Charlie Robbins][0]
 | |
| #### Author/Maintainer: [Erik Trom][1]
 | |
| #### License: MIT/X11
 | |
| [0]: http://nodejitsu.com
 | |
| [1]: https://github.com/eriktrom
 |