我正在学习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”,它仍然给出相同的端口使用错误。
当前回答
关闭命令提示符(cmd),然后使用文本编辑器终端或仅使用cmd来运行命令。
对我来说,这就是问题所在,以及我是如何解决它的。
大多数时候你是使用命令提示符创建angular应用的。然后你试着在文本编辑器中运行应用终端。当你试图保存时,你可以看到一些东西在Windows命令提示符上运行。因此,只需关闭它,并在文本编辑器的终端中运行命令。
其他回答
在linux mint 17上,这是工作的。
Kill -9 $(lsof -t -i:4200)
这是我用来杀死端口4200的进程
linux用户:
sudo kill $(sudo lsof -t -i:4200)
你也可以试试这个:
sudo kill `sudo lsof -t -i:4200`
windows用户:
端口号4200已被使用。以管理员身份打开cmd。在cmd中输入以下命令:
netstat -a -n -o
然后,在终端上右键单击,找到端口号为4200的端口,单击find,在“find what”中输入4200,然后单击“find next”: 假设您发现pid 18932使用了端口号4200。在cmd中输入以下命令:
taskkill -f /pid 18932
UNIX:
alias ngf='kill -9 $(lsof -t -i:4200);ng serve'
现在在终端项目文件夹中运行ngf(而不是ng serve)。这会杀死所有使用4200端口的进程,并运行你的Angular项目。
似乎另一个程序正在使用您的默认端口4200。好消息是,4200以上的端口通常是免费的。再选一个吧。例如:
ng serve --port 4210
我也遇到过类似的问题,问题基本上是我在powershell中打开了多个运行终端。其他的都按Ctrl+c。
在Mac OS X上,您需要执行以下命令:
Sudo lsof -t -i tcp:4200 | xargs kill -9
记住,你需要用Command+C关闭Angular的web服务器。