UNPKG

hm-react-cli

Version:

Create a Huimei React project by module

32 lines (27 loc) 937 B
const net = require('net'); const tryUsePort = async function (port, portAvailableCallback) { function portUsed(port) { return new Promise((resolve, reject) => { let server = net.createServer().listen(port); server.on('listening', function () { server.close(); resolve(port); }); server.on('error', function (err) { if (err.code == 'EADDRINUSE') { resolve(err); } }); }); } let res = await portUsed(port); if (res instanceof Error) { port++; return tryUsePort(port, portAvailableCallback); } else { portAvailableCallback && portAvailableCallback(port); return Promise.resolve(port); } }; // 输入一个预设的端口号,不可用在其基础 +1,直到输出一个可用的端口号 module.exports = tryUsePort;