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

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

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

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


当前回答

关闭命令提示符(cmd),然后使用文本编辑器终端或仅使用cmd来运行命令。

对我来说,这就是问题所在,以及我是如何解决它的。

大多数时候你是使用命令提示符创建angular应用的。然后你试着在文本编辑器中运行应用终端。当你试图保存时,你可以看到一些东西在Windows命令提示符上运行。因此,只需关闭它,并在文本编辑器的终端中运行命令。

其他回答

每次我必须关闭端口时,我都面临着同样的问题。

我尝试了。/node_modules/.bin/ng serve——proxy-config proxy.conf.json——host 0.0.0.0而不是npm start和它的工作

最简单的一行命令:

 sudo fuser -k 4200/tcp

我分享这两个命令在我的mac上没有工作:

sudo kill $(sudo lsof -t -i:4200)

sudo kill `sudo lsof -t -i:4200`

下面的一个做到了,但如果你在Visual Code中使用集成终端,尝试使用你的机器终端并添加fowling命令:

lsof -t -i tcp:4200 | xargs kill -9

总之,解决方案不止一种: 1)使用另一个端口定义端口号,

ng serve --open --port 4201

2)通过终止过程

ctrl + c // for kill
Close all node terminal which is related for running the app.

3)类型

Netstat -a -n -o

命令提示符 然后找到相应的端口PID,通过

taskkill /F /PID (PID数)

4)输入netstat -ano|findstr:4200

获取外部地址PID,其中包含端口号,然后杀死它

taskkill /PID (PID number)/F

当您使用Ctrl+Z时,您将挂起正在运行的任务,而不是终止它。后续可以使用fg命令恢复任务。 如果你想退出ng serve,你应该使用Ctrl+C来代替,这也会释放4200端口。