check-port.js•1.06 kB
#!/usr/bin/env node
import { createServer } from 'net';
async function checkPort(port) {
return new Promise((resolve) => {
const server = createServer();
server.listen(port, () => {
server.close();
resolve(true); // 端口可用
});
server.on('error', () => {
resolve(false); // 端口被占用
});
});
}
async function findAvailablePort(startPort = 3000, endPort = 3010) {
console.log('🔍 检查端口可用性...');
for (let port = startPort; port <= endPort; port++) {
const isAvailable = await checkPort(port);
const status = isAvailable ? '✅ 可用' : '❌ 被占用';
console.log(`端口 ${port}: ${status}`);
if (isAvailable) {
console.log(`\n🎯 推荐使用端口: ${port}`);
return port;
}
}
console.log('\n⚠️ 在指定范围内没有找到可用端口');
return null;
}
// 检查常用端口
findAvailablePort(3000, 3010).then(port => {
if (port) {
console.log(`\n💡 建议在 src/index.ts 中使用端口 ${port}`);
console.log(` 修改 httpStream.port 为 ${port}`);
}
});