angularアプリをローカルで実行すると、_ng serve
_にリンクされたノードプロセスがCPUコアの100%をはるかに超えて使用するという問題に苦労しています。
私の現在の環境は:
Angular CLI:7.3.10ノード:11.15.0 OS:darwin x64(Mac OS X Catalina 10.15.4)Angular:7.2.16
Mac OSの問題に対してfsevents
をインストールするという一般的な解決策があるように見える、これに関する多くの投稿と問題に遭遇しました。
私が試したこと:
fsevents
を再構築するための_node-gyp
_のXCodeコマンドラインツールのインストールfsevents
(2.1.3)の最新バージョンをインストールしますnvm
も使用しますnpm rebuild
_を試しました何を試しても、高いCPU使用率を観察し続けますが、時々300〜400%も上昇しているのを見てきました。
これは私の開発を本当に妨げています、そして私が誰かが私が試すことができるいくつかの明るいアイデアを持っていることを望んでいます。
それができない場合、node
を完全にアンインストールし、nvm
を削除してゼロから始めてみるべきかどうか疑問に思っています。
更新-解決済み
そこで、マシンからnvm
とnode
を削除し、nodeJS Webサイトから最新の安定したバージョンをインストールする方法を試しました。
これを行っても、アプリを起動するときに違いはありませんでした。
私は、webpackのポーリング動作と、これをオフにするか、ポーリング間隔を増やすオプションについて話している投稿をいくつか見つけました。
_--poll [ms]
_が動作しているときにこの頻度を制御するために使用できる_ng serve
_ cli引数があることがわかりました。
_--poll 1000
_引数を使用すると、2つのアプリが実行され、それぞれが私のCPUの約30%を使用します。だから最近観察しているよりもずっと低いですが、これを下げられるかどうかを確認したかったのです。
_--poll 2000
_引数を使用すると、これらのアプリのノードプロセスは約10〜15%しか使用していません。
変更を検出してCPU使用率の急上昇を再コンパイルすると、私はそれを予想してから、これらの低いレベルに戻ります。
したがって、何らかの理由でfsevents
が私のマシンに影響を与えていない場合でも、アプリの依存関係が_npm i
_の場合はインストールされます。これが異なる場合は、グローバルにインストールしました。
とにかく、なぜこの問題が最初に発生したのか理解できればいいのですが、今は幸せです。
¯\_(ツ)_/¯
たぶん、Docker
でのホット/ライブのリロードのために、ng serve --Host 0.0.0.0 --poll 1
。 poll
値には問題があります。たとえば、2000
、 そのような ng serve --Host 0.0.0.0 --poll 2000
。
これで、(ほぼ)リアルタイムのホット/ライブのリロードが失われますが、CPU /バッテリーが節約され、変更されたコードがアプリによって更新されるまでに2秒の遅延が生じます。
私は問題を解決することができたようです:/ node_moduleを削除して再インストールしてください
私がここでアドバイスを見つけたのを助けた私の場合: https://gitmemory.com/issue/angular/angular-cli/14748/501608887
以下のコマンドを使用してみてください
node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve