Angular / CLI:如何更改自动重新加载的端口?

时间:2018-02-13 14:59:39

标签: javascript angular angular-cli

据我所知,在运行ng serve时,Angular应用程序会轮询开发服务器,以确定是否需要重新加载。该服务器应该在端口4200上运行(默认)。

我运行一个带有多个docker容器的开发环境,以保持良好和隔离。所以我的一些有角度的应用程序在不同的端口上侦这似乎导致我的浏览器控制台每隔几秒出现以下错误消息:

zone.js:2744 GET http://localhost:4200/sockjs-node/info?t=1518533495440 net::ERR_EMPTY_RESPONSE

在哪里可以更改配置以将实时重新加载客户端指向正确的方向? angular-cli.json似乎没有做任何事情。

5 个答案:

答案 0 :(得分:6)

我找到了解决方案。您必须使用ng serve选项启动--public-host(别名:--live-reload-client)。所以我在

的package.json中修改了我的start命令
"start": "ng serve --host 0.0.0.0"

"start": "ng serve --host 0.0.0.0 --live-reload-client http://localhost:4400"

重点是我不想改变开发服务器本身的端口。它应该在端口4200上的Docker容器内运行。但是端口4200在Docker中映射到外部端口4400(在我的例子中)。我调用http://localhost:4400在浏览器中运行应用程序,重新加载客户端也应该调用http://localhost:4400进行更新。但它叫http://localhost:4200。使用--live-reload-client选项一切正常。

答案 1 :(得分:1)

您可以使用两个命令行选项配置默认HTTP端口和LiveReload服务器使用的端口:

ng serve --host 0.0.0.0 --port 4201 --live-reload-port 49153

答案 2 :(得分:0)

似乎--live-reload-port在新版本中不再使用。 实时重载端口与开发服务器端口相同。 因此,设置load data infile '/var/lib/mysql-files/TechCrunchcontinentalUSA.csv' into table fund fields terminated by ',' lines terminated by '\n' (permalink, company, @numEmps , category , city ,state, @funded, @raised, raisedCurrency ,round ) set numEmps=cast(@emps as unsigned), raisedAmt = cast(@raised as unsigned), fundedDate =STR_TO_DATE(@funded, '%d-%b-%Y') ; 将使用4201作为实时重新加载端口。

答案 3 :(得分:-1)

您可以使用--port

更改端口
ng serve --port 4201

将在端口4201

上启动服务器

答案 4 :(得分:-1)

在运行应用程序实例时,请使用以下命令: ng服务-端口123

代替: ng服务

在package.json中进行的任何更改都不会产生任何影响。