min*_*rse 21 fsevents node.js node-gyp webpack angular
我正在努力解决一个问题,即在本地运行任何 angular 应用程序时,链接到的节点进程ng serve使用了超过 100% 的 CPU 内核。
我现在的环境是:
Angular CLI:7.3.10 节点:11.15.0 操作系统:darwin x64 (Mac OS X Catalina 10.15.4) Angular:7.2.16
我遇到了很多关于此的帖子和问题,其中常见的解决方案似乎是fsevents针对 Mac OS 问题进行安装。
我尝试过的事情:
node-gyp以fsevents在安装后重建fsevents(2.1.3),因为旧版本被指定为 angular-cli (1.2.13) 的可选依赖项
nvm也使用npm rebuild无论我尝试什么,我一直观察到 CPU 使用率很高,我看到它有时会上升 300-400%。
这真的阻碍了我的发展,我希望有人可能有一些我可以尝试的好主意。
如果失败,我想知道是否应该尝试node完全卸载,摆脱nvm并从头开始。
更新 - 已解决
所以我走下了删除nvm和node关闭我的机器并从 nodeJS 网站安装最新稳定版本的路线。
在启动我的应用程序时这样做没有区别。
我看到一些帖子谈论 webpack 的轮询行为以及关闭它或增加轮询间隔量的选项。
我发现有一个--poll [ms]cli 参数可用于ng serve在播放时控制此频率。
使用--poll 1000arg,我现在有两个应用程序在运行,每个应用程序使用大约 30% 的 CPU。比我最近观察到的要低得多,但我想看看我是否能把它降得更低。
使用--poll 2000arg,我现在看到这些应用程序的节点进程只使用了大约 10-15%。
当检测到变化并重新编译 CPU 使用率峰值时,我预计会出现这种情况,然后又回落到这些较低的水平。
因此,无论出于何种原因fsevents对我的机器没有影响,当npm i我的应用程序依赖项时它仍在安装,并且我已经全局安装它以防万一。
无论如何,我现在更开心了,尽管我希望我首先理解为什么会出现这个问题!
¯\_(?)_/¯
cer*_*ner 19
在 Angular 开发环境中;转译/编译会导致 CPU 尖峰。如果这种情况发生得太频繁,您的系统就会出现问题。
有一些方法可以稍微缓解疼痛;
ng serve --live-reload false或ng serve --no-live-reload等等,取决于您的 Angular CLI 版本
npm install fsevents
npm rebuild fsevents
npm serve
ng serve --poll [ms]
CPU 管理很棘手,这个问题可能有很多原因。这些只是与 Angular 开发密切相关的几种可能性。我希望这个答案提供了一些选择来尝试那些遇到同样问题的人。
小智 0
看来我设法解决了问题:删除 /node_module 并再次安装
就我而言,这帮助我在这里找到了建议: https: //gitmemory.com/issue/angular/angular-cli/14748/501608887