运行ng serve命令时,“Port 4200已经在使用”
我正在学习angular 2,并且第一次使用angular CLI项目来创build一个沙箱项目。
我能够运行“ng服务”命令,它工作得很好。 我想阻止它运行,所以我跑了“控制Z”。
当我试图再次运行“ng-serve”命令时,它给了我“端口4200已经在使用”。
我运行“PS”得到PID的列表,并为angular-cli杀死了PID,并再次运行“ng-serve”,但仍然给出了相同的端口使用错误。
这是我用来杀死端口4200的进展
sudo kill $(sudo lsof -t -i:4200)
你也可以试试这个:
sudo kill `sudo lsof -t -i:4200`
对于Windows用户:
端口号4200已被使用。 在cmd中键入以下命令:
netstat -a -n -o
然后通过在terminal上点击鼠标右键find端口号为4200的端口,单击find,在“find what”中input4200,然后单击“find next”:假设您发现端口号4200被pid 18932使用。 CMD:
taskkill -f /pid 18932
以administrator
身份打开您的cmd.exe
,
然后findport 4200
的PID
netstat -ano | findstr :4200
这里我有3个PID:
- 红色的是来自“ng-serve”(127.0.0.1:4200)的
LISTENING
- 绿色的是从“你的浏览器”
杀死只有端口4200(杀死红色PID):
taskkill /PID 15940 /F
注意:杀了绿色的只会导致你的浏览器被强制closures。
现在你可以做“ng-serve”在同一个端口4200上启动你的angular度应用程序
额外的东西:
一个class轮:寻找一种方法来优化这个,这是这个答案的一个class轮的命令:(特别感谢: 何塞普·阿尔西纳这个提示)
for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a
在Mac OS X上,您需要以下命令:
sudo lsof -t -i tcp:4200 | xargs kill -9
记住你需要用Command + C来杀死Angular的web服务器。
我也面临同样的错误信息,所以我尝试服务 – 端口12012 ,它工作正常。
不是Ctrl + Z,你必须运行停止Ctrl + C它的工作,我检查
当你使用Ctrl+Z
,你将暂停一个正在运行的任务,但不能杀死它。 您稍后可以使用命令fg
来恢复任务。 如果你想退出ng serve
,你应该使用Ctrl+C
代替,其中也将释放4200端口。
netstat -anp | grep ":4200"
这将告诉你谁有端口。
ng serve --port 4201 --live-reload-port 4200
并使用localhost:4201
访问
这应该是一个临时解决scheme。
我们可以通过下面的命令强制终止端口。
kill -2 $(lsof -t -i:4200)
如果您在CMD和IDE中编译angularJS代码,则会发生此问题。 在CMD中,当你在IDE中改变angularJS代码时,你的angularJS代码会自动编译,然后你的IDE想要占用相同的端口,即已经被CMD占用的4200所以,这个问题有一个简单的解决scheme,只需closures你的cmd,同时在IDE中编译你的代码。
每次我必须杀死港口时,我都面临同样的问题。
我试过./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0
而不是npm start
及其作品
试试像这样在不同的端口上运行
ng serve --port 4201