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_events
和max_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界面