我正在学习angular 2,这是我第一次使用angular CLI项目创建一个沙盒项目。
我能够运行命令“ng serve”,它工作得很好。我想让它停止运行,所以我运行了“控制Z”。
当我再次尝试运行“ng-serve”命令时,它提示我“端口4200已被使用”。
我运行“PS”来获得PID列表,并杀死了angular-cli的PID,然后再次运行“ng-serve”,它仍然给出相同的端口使用错误。
我正在学习angular 2,这是我第一次使用angular CLI项目创建一个沙盒项目。
我能够运行命令“ng serve”,它工作得很好。我想让它停止运行,所以我运行了“控制Z”。
当我再次尝试运行“ng-serve”命令时,它提示我“端口4200已被使用”。
我运行“PS”来获得PID列表,并杀死了angular-cli的PID,然后再次运行“ng-serve”,它仍然给出相同的端口使用错误。
当前回答
我在这方面遇到了很大的麻烦,我甚至尝试了许多其他端口,但一无所获。
我安装了npm typescript@2.8,它解决了这个问题。由于某种原因,typescript版本导致冲突,使用yarn或ng serve无法工作。
希望这对其他有同样问题的人有用。
其他回答
以管理员身份打开cmd.exe,
然后找到4200端口的PID
netstat -ano | findstr :4200
这里我有3个PID:
红色的来自“ng-serve”(127.0.0.1:4200) 绿色的来自"your browser"
只杀死4200端口(杀死红色PID):
taskkill /PID 15940 /F
注意:杀死绿色只会导致你的浏览器被强制关闭。
现在你可以使用ng-serve在4200端口上启动angular应用
附加内容:
一行:在寻找优化的方法之后,下面是这个答案的一行命令:(特别感谢:Josep Alsina提供的提示)
for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a
当您使用Ctrl+Z时,您将挂起正在运行的任务,而不是终止它。后续可以使用fg命令恢复任务。 如果你想退出ng serve,你应该使用Ctrl+C来代替,这也会释放4200端口。
Netstat -plnet
tcp 00 127.0.0.1:4200 0.0.0.0:* LISTEN 1001 63955 7077/ng
杀死-9 7077
再次开始你的ng发球。
ng serve --open
分配一个本地主机来承载项目。在同一个目录下运行相同的命令时,系统会在端口已经被使用的地方分配localhost:port。要覆盖这个问题,可以很容易地运行以下命令:
ng serve --port
这将为项目分配一个新的端口,而不会干扰当前的本地主机端口。
不要用ctrl+Z,要停止进程一定要用ctrl+C