为什么Docker中的Angular应用的Live Reload速度慢?

时间:2018-08-08 20:20:44

标签: angular docker webpack docker-compose

我正在Docker映像内运行Angular前端的Rails后端。 主机正在运行OSX。

当我运行docker-compose up --build时,服务运行良好,但是对前端文件的任何更改都需要将近一个小时才能触发热重装。

如果我在ng容器的bash会话中手动运行构建过程, (ng build --aot),大约需要2分钟。不是最佳选择,但比一个小时要好。作为热重装的一部分,同一构建过程花费的时间更长。我不确定为什么。

我尝试了here中提到的解决方案,有关开放端口以进行Webpack热装,并在docker-compose.yml内添加端口号,但行为没有差异。

Rails部分工作正常。更改文件几乎立即在容器中注意到。

但是,对于ng容器而言,事情还不那么轻松。我的Docker映像中不包含node_modules目录,因此在Docker构建时,它将在映像中填充其自己的node_modules目录。这应该意味着将主机上的节点模块与映像中的内容进行同步没有问题。

我已经进行了一些研究,似乎可以运行ng eject,这使我可以自定义webpack配置。对于修改配置以加快速度有一些建议,例如this one。但是,鉴于ng 6不支持弹出选项,所以我宁愿不走这条路。

关于如何加快此ng应用程序的编译时间的任何想法吗?

1 个答案:

答案 0 :(得分:0)

This comment解决了AngularCLI问题“ ng服务未检测到文件更改”。

更新tsconfig.json文件,使其自动排除极大加速Webpack的node_modules目录。

我仍然很好奇为什么这是Debian Jessie上的问题,而不是OSX上的问题。如果有人知道原因,我会为之震惊。