Node.js 始终使用端口3000(即使我用Port=XYZ覆盖它)
我有一个用React编写的WEB应用程序,每当我尝试使用Node.js 始终使用端口3000(即使我用Port=XYZ覆盖它),node.js,reactjs,windows,react-app-rewired,Node.js,Reactjs,Windows,React App Rewired,我有一个用React编写的WEB应用程序,每当我尝试使用React app rewired start运行它时,它都会抱怨端口XYZ上已经有东西在运行 我已经用netstat-a-b检查了是否有进程正在侦听端口XYZ,但没有。此外,如果我将端口XYZ更改为任何4位值(使用环境变量port=3001),我总是会遇到相同的问题,即端口已被占用,因此我得出的结论是端口未被占用,但下面发生了一些事情。我在安装了节点12的Windows 10上运行(我尝试降级到节点10,因为我认为这在较低的节点版本上适用
React app rewired start
运行它时,它都会抱怨端口XYZ上已经有东西在运行
我已经用netstat-a-b
检查了是否有进程正在侦听端口XYZ,但没有。此外,如果我将端口XYZ更改为任何4位值(使用环境变量port=3001
),我总是会遇到相同的问题,即端口已被占用,因此我得出的结论是端口未被占用,但下面发生了一些事情。我在安装了节点12的Windows 10上运行(我尝试降级到节点10,因为我认为这在较低的节点版本上适用,但我无法让它继续工作)
我在网上搜索过,大多数人建议检查一下港口是否被占用,我发现的其他一些建议如下,但不适用于我:
- 检查端口未被占用/更改端口
- 将
反应脚本降级为^2.1.8
- 检查我的应用程序(.listen())中是否有多个侦听器
是否有人遇到过类似的问题并能够解决这些问题?尝试:
taskkill /im node.exe
如果进程仍然存在,可以通过添加/f标志来强制终止进程:
taskkill /f /im node.exe
原来是Hyper-V占用了所有端口…禁用Hyper-V后,我能够在端口3000上运行节点应用程序
此问题的解决方法是在Hyper-V关闭时保留端口:
禁用hyper-v(需要几次重新启动)
dism.exe/联机/禁用功能:Microsoft-Hyper-V
完成所有必需的重新启动后,保留所需的端口,以便hyper-v不会将其保留回去
netsh int ipv4 add excludedportrange协议=tcp startport=3000 numberofport=1
重新启用hyper-V(需要重新启动几次)
dism.exe/Online/Enable功能:Microsoft-Hyper-V/All
参考资料:
我现在已经尝试了:$taskkill/f/im node.exe错误:找不到进程“node.exe”代码>启动WEB应用程序时,我仍然得到端口3000上已经有东西在运行。