Angular-cling 服务 livereload 不工作

Posted

技术标签:

【中文标题】Angular-cling 服务 livereload 不工作【英文标题】:Angular-cli ng serve livereload not working 【发布时间】:2017-03-14 22:54:49 【问题描述】:

我用 Ng-cli 创建了一个示例项目,然后我在源文件夹中运行 ng serve,项目在浏览器中正确加载,但 livereload 不工作。

npm -v:3.10.9

ng -v: 角-cli:1.0.0-beta.19-3 节点:4.4.3 操作系统:win32 x64

已经在网上查了很多资料,都没有解决问题。

【问题讨论】:

【参考方案1】:

Linux 操作系统上使用 sudo 管理控制运行您的应用

sudo ng serve

【讨论】:

一个不错的解决方案 thnx【参考方案2】:

只需将fs.inotify.max_user_watches=524288 添加到此文件/etc/sysctl.conf

或者运行这个sudo echo “fs.inotify.max_user_watches=524288” >> /etc/sysctl.conf。如果您不想打开文件并对其进行编辑,也应该可以使用。

然后运行这个sudo sysctl -p --system

【讨论】:

【参考方案3】:

增加 inotify 观察者的数量

技术细节

Listen 在 Linux 上默认使用 inotify 来监视目录 变化。遇到系统数量限制的情况并不少见 您可以监控的文件。例如,Ubuntu Lucid 的(64 位)inotify 限制设置为 8192。

您可以通过执行以下命令获取当前的 inotify 文件监视限制:

$ cat /proc/sys/fs/inotify/max_user_watches

当此限制不足以监视目录中的所有文件时, 必须提高限制才能使 Listen 正常工作。

您可以通过以下方式临时设置新的限制:

$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p

如果您想永久设置限制,请使用:

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p

您可能还需要注意 max_queued_eventsmax_user_instances 如果 Listen 继续抱怨。

Source

【讨论】:

像魅力一样工作:)【参考方案4】:

升级到 Angular 7 后实时重载服务器停止工作。

原因是我的 Node 版本是 10.15.0。在 Windows 10 x64 上。

将 Node 降级到 10.10.0 版后 -> 现在一切正常。

您可以从这里下载旧的 Node 版本:https://nodejs.org/en/download/releases/

祝你好运。

【讨论】:

【参考方案5】:

您的项目是否在映射的网络驱动器上?我发现这导致 LiveReload 失败。

在 Windows 7 上运行 VS Code。 角 CLI:1.7.4 节点:8.11.1 NPM:5.6.0 操作系统:win32 x64

我使用 Angular CLI 在我的“E:”驱动器上创建了一个准系统 Angular 应用程序,该驱动器映射到我网络上的一个文件夹。 'ng serve' 不检测代码更改。我将项目复制到我的“C:”驱动器,Live Reload 可以正常工作。因此,看看将您的项目移动到本地驱动器是否可以解决您的问题。

【讨论】:

这正是我面临的问题。谢谢。【参考方案6】:

这是由于 webpack。

如果我们一次运行两个 Angular 应用程序。 有时,每次我们需要停止和启动应用程序时,它可能不会重新加载应用程序。 在这种情况下,一次运行一个应用程序

【讨论】:

【参考方案7】:

不确定您的版本有什么问题,但最近我遇到了类似的问题。这是我的机器环境:Ubuntu: 16.04.3 npm -v : 5.5.1 ng -v : Angular CLI: 1.5.5 Node: 9.2.0 OS: linux x64 Angular: 5.0.4 我使用ng serve -o 在本地提供文件,这是导致实时重新加载问题的一些原因,解决问题的是ng serve --open 。希望这能有所帮助。

【讨论】:

【参考方案8】:

我在 Ubuntu 16.04 和 angular CLI 1.0.0 上遇到了同样的问题。

问题与 Linux 上的 Inotify Watches Limit 有关。 为了解决这个问题,我将手表限制增加到 512K。 运行这些命令。

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p --system

之后,我重新启动了我的 IDE,之后,更改检测开始工作。

【讨论】:

尽管 OP 询问了 win :P,但当我使用 Ubuntu 18 和 Angular CLI 6.0.3 时,答案对我有所帮助。非常感谢! 对我来说,在这些更改之后重新启动我的终端有帮助【参考方案9】:

尝试ng serve -lr 标志。这面旗帜适合我。 可能出现问题是因为 --live-reload 标志已弃用

【讨论】:

ng serve --live-reload -o angular cli 8.x.x

以上是关于Angular-cling 服务 livereload 不工作的主要内容,如果未能解决你的问题,请参考以下文章

sublime3安装liveload,实现前端自动F5刷新html界面

Android四大组件——Service后台服务前台服务IntentService跨进程服务无障碍服务系统服务

服务治理

springboot-服务治理

微服务基础服务的基本组件

服务发现的基本原理