I am struggling with an issue where on running any angular app locally the node process linked to ng serve
is using well over 100% of my CPU core's.
My current environment is:
Angular CLI: 7.3.10 Node: 11.15.0 OS: darwin x64 (Mac OS X Catalina 10.15.4) Angular: 7.2.16
I have come across numerous posts and issues about this where the common solutions appear to be to install fsevents
for Mac OS issues.
Things I have tried:
node-gyp
to rebuild fsevents
after its installedfsevents
(2.1.3) as an older version is specified as an optional dependency with angular-cli (1.2.13)nvm
alsonpm rebuild
No matter what I try, I keep observing high cpu usage, I have seen it creep up too 300-400% at times.
This is really hampering my development and I am hoping someone may have some bright ideas I could try out.
Failing that, I am wondering if I should try uninstalling node
completely, getting rid of nvm
and starting from scratch.
In Angular development context; transpilation/compilation causes CPU spike. When this happens too frequent, your system is in trouble.
There are certain ways to relieve the pain a little;
ng serve --live-reload false
or ng serve --no-live-reload
etc. depending on your Angular CLI version
npm install fsevents
npm rebuild fsevents
npm serve
ng serve --poll [ms]
CPU management is tricky, there can be many reasons for this problem. These are only a few possibilities closely related to Angular development. I hope this answer provides some options to try to the ones having the same trouble.
Maybe you have similar setup for you hot/live reloading on Docker
such as ng serve --host 0.0.0.0 --poll 1
. The poll
value is problematic, change it on something larger, for example 2000
, such that ng serve --host 0.0.0.0 --poll 2000
.
Now, you'll loose (almost) real-time hot/live reloading, but you'll save your CPU/battery and having 2 seconds delay before your app will refresh the changed code.
it seems i managed to resolve the problem: delete the /node_module and install again
in my case that helped i found the advise here:https://gitmemory.com/issue/angular/angular-cli/14748/501608887
After a lot of digging, I found the below option which works well for me. Before that every time I encounter with JavaScript heap out of memory issue. Tried with custom NODE memory, but noting works for me rather than below one.
ng serve --source-map=false
and
ng build --source-map=false
Works like a charm.
If you use Yarn to install packages, its lockfile may have locked in an older version of fsevents
which has known issues with node-pre-gyp
on Apple Silicon.
https://github.com/nodejs/node-gyp/issues/2296
Simply deleting yarn.lock
, and running yarn
again, should attempt to install newer versions of the fsevents
dependency, which does not have that issue.
This worked with Angular 11.
Setting the flag --watch=false
is what reduced CPU usage of my angular process from 50% to 0%:
ng serve --configuration=dev --watch=false
Try using below command
node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.