我正在学习angular 2,这是我第一次使用angular CLI项目创建一个沙盒项目。

我能够运行命令“ng serve”,它工作得很好。我想让它停止运行,所以我运行了“控制Z”。

当我再次尝试运行“ng-serve”命令时,它提示我“端口4200已被使用”。

我运行“PS”来获得PID列表,并杀死了angular-cli的PID,然后再次运行“ng-serve”,它仍然给出相同的端口使用错误。


当前回答

如果你同时在CMD和IDE中编译angular JS代码,就会出现这个问题。在CMD中,当你在IDE中修改angular JS代码时,你的angular JS代码会自动编译,然后你的IDE想要占用相同的端口,即4200,这个端口已经被CMD占用了 因此,这个问题有一个简单的解决方案,在IDE中编译代码时关闭cmd。

其他回答

唯一对我有用的是重启我的系统/设备…

使用Webstorm IDE由JetBrains。

Windows:

打开命令提示符和

类型:netstat -a -o -n

找到要终止的进程的PID。

类型:taskkill /F /PID 16876

这个16876 -是我想要杀死的进程的PID -在这种情况下,进程是4200 -检查所附文件。你可以给出任何端口号。

现在,输入:ng可以在相同的端口4200上启动angular应用

windows用户:

步骤1。端口号4200已被使用。以管理员身份打开cmd。在cmd中输入以下命令:

netstat -a -n -o

在这里输入图像描述

找到要终止的进程的PID。

步骤2.在cmd中执行命令:

taskkill /F /PID 6500

第三步:现在,输入:

Ng可以在同一个端口4200上启动你的angular应用

ng serve --port 4201 --live-reload-port 4200

并使用localhost:4201访问

这应该是一个临时的解决方案。

or

尝试使用列出端口使用情况 lsof我:4200 并手动杀死它使用 sudo kill -9 <进程PID using port 4200>

以管理员身份打开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