1 | ![get-port-please](https://user-images.githubusercontent.com/904724/101664848-9bc16380-3a4c-11eb-9e3a-faad60c86b2e.png)
|
2 |
|
3 | # get-port-please
|
4 |
|
5 | > Get an available TCP port to listen
|
6 |
|
7 | [![npm](https://img.shields.io/npm/dt/get-port-please.svg?style=flat-square)](https://npmjs.com/package/get-port-please)
|
8 | [![npm (scoped with tag)](https://img.shields.io/npm/v/get-port-please/latest.svg?style=flat-square)](https://npmjs.com/package/get-port-please)
|
9 |
|
10 | ## Usage
|
11 |
|
12 | Install package:
|
13 |
|
14 | ```bash
|
15 | yarn add get-port-please
|
16 | # or
|
17 | npm install get-port-please
|
18 | ```
|
19 |
|
20 | ```js
|
21 | // ESM
|
22 | import { getPort, checkPort, getRandomPort, waitForPort } from 'get-port-please'
|
23 |
|
24 | // CommonJS
|
25 | const { getPort, checkPort, getRandomPort, waitForPort } = require('get-port-please')
|
26 | ```
|
27 |
|
28 | ```ts
|
29 | getPort(options?: GetPortOptions): Promise<number>
|
30 | checkPort(port: number, host?: string): Promise<number | false>
|
31 | waitForPort(port: number, options): Promise<number | false>
|
32 | ```
|
33 |
|
34 | Try sequence is: port > ports > memo > random
|
35 |
|
36 | ## Options
|
37 |
|
38 | ```ts
|
39 | interface GetPortOptions {
|
40 | name?: string
|
41 |
|
42 | random?: boolean
|
43 | port?: number
|
44 | portRange?: [from: number, to: number]
|
45 | ports?: number[]
|
46 | host?: string
|
47 |
|
48 | memoDir?: string
|
49 | memoName?: string
|
50 | }
|
51 | ```
|
52 |
|
53 | ### `name`
|
54 |
|
55 | Unique name for port memorizing. Default is `default`.
|
56 |
|
57 | ### `random`
|
58 |
|
59 | If enabled, `port` and `ports` will be ignored. Default is `false`.
|
60 |
|
61 | ### `port`
|
62 |
|
63 | First port to check. Default is `process.env.PORT || 3000`
|
64 |
|
65 | ### `ports`
|
66 |
|
67 | Alternative ports to check.
|
68 |
|
69 | ### `portRange`
|
70 |
|
71 | Alternative port range to check. Default is `[3000, 3100]`
|
72 |
|
73 | ### `host`
|
74 |
|
75 | The host to check. Default is `process.env.HOST` otherwise all available hosts will be checked.
|
76 |
|
77 | ### `memoDir` / `memoName`
|
78 |
|
79 | Options passed to [fs-memo](https://github.com/unjs/fs-memo)
|
80 |
|
81 | - Default dir: `node_modules/get-port/dist`
|
82 | - Default name: `.get-port`
|
83 |
|
84 | ## License
|
85 |
|
86 | MIT
|