webpack開発サーバーのため、システムがハングします。

webpack開発サーバーのため、システムがハングします。

npm start私の反応アプリで使用中にエラーが発生します。このように
ENOSPC system limit for file watcher reached
npmとnodeのバージョンを更新しましたが、まだこの問題があります。いくつかの調査を行った後、さまざまなファイルを監視するinotifyということがあり、そのファイル監視制限を増やす必要があることがわかりました。
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
ファイルウォッチャーの制限を増やすために、端末でこのコードを使用してください。その後、私はこれをうまく実行してnpm startプロジェクトをlocalhost:3000で実行しましたが、これによりシステムが非常に遅くなり、時には動作が中断されました。私はこれがファイルウォッチャーの数が増加したために発生したと思います。それでは、どうすればいいですか?

答え1

通知するシステムイベントの変更を監視して変更を適用すると、以前より多くのファイルを監視できます。もちろん、モニタリングは一般的なシステムの動作に影響を与えます。

実際に値を「調整」するには、次を使用して現在のユーザー時計の数を確認します。

lsof | grep inotify | wc -l

その後、問題を回避するには、この結果に少し大きい値を設定します。fs.inotify.max_user_watches; よりはるかに小さい値524288これにより、より少ないリソースを消費するのに役立ちます。

答え2

524288:(大きすぎる)マジックナンバー

おそらくあなたもそうですが、私は提案に基づいてmax_user_watchesIDEがそれについて苦情を申し立てた後、デフォルトよりも高い数値に値を設定しました。
どこから来たのかはわかりませんが524288、数ヶ月間使ってみた結果、RAMが多いシステムでも問題が発生するという点は確かにわかります。

同じ警告メッセージに対する回答を探している人は、次のようにします。

制限を変更するには、524288程度まですぐに移動しないでください。

Webpack開発サーバーの最適化(問題を隠さずに…修正してください!)

開発サーバーとホットリロードの目的は、開発中に更新される可能性のあるファイルを見て時間を節約することです。

しかし、フォルダのコードを何回変更しましたかnode_modules?おそらく多くはないと思います...


devServer: {

...
        watchOptions: {
            ignored: /node_modules/
        },

...

},


このオプションを使用すると、開発サーバーはホットリロードの利点を利用するために実際に監視する必要があるファイルにのみ集中します。

npmの依存関係を変更する必要がある場合は、サーバーを停止してパッケージをインストール/削除してから最後に再起動することをお勧めします。

ファイルウォッチャーを使用してプロセスを検査するスクリプト

一つある興味深い台本GitHubで監視されているすべてのファイルのプロセスとそのファイル番号を印刷します。

これがまさに生命安全だ!

intellij-current/plugins/JavaScriptLanguage/jsLanguageServicesIm

これは、開発サーバーが監視する〜10,000個のファイルに加えて、別の13,000個のファイルを監視するJetbrainsのNode.jsコードサポート機能だと思います。

最高の設定を見つけるために幸運! :-)

関連情報