実行webpack --watch
してみましたが、JS ファイルを編集した後、自動再コンパイルがトリガーされません。
webpack
を使用して再インストールを試みましnpm uninstall
たが、まだ機能していません。
何か案は?
実行webpack --watch
してみましたが、JS ファイルを編集した後、自動再コンパイルがトリガーされません。
webpack
を使用して再インストールを試みましnpm uninstall
たが、まだ機能していません。
何か案は?
コードが再コンパイルされていない場合は、ウォッチャーの数を増やしてみてください (Ubuntu の場合):
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
WebStorm を使用しているときに、この問題が発生しました。
設定を無効にする->システム設定->「安全な書き込み」で解決しました。
そうするための推奨事項を見つけました: WebPack トラブルシューティング
考えられる解決策に追加するだけです。プロジェクトフォルダーをDropboxフォルダー内に置いていたので、それを移動することで問題が解決しました。(OS X)
フォルダーの大文字と小文字の区別が私の問題でした。require() への私のコード呼び出しにはすべて小文字のパス名がありましたが、実際にはディレクトリには大文字が含まれていました。すべてのディレクトリの名前を小文字に変更すると、webpack の監視が即座に機能しました。
fs.inotify.max_user_watches を César が指摘するように変更しても機能しない場合は、ドキュメントに示されているようにスクリプトを作成するか、オプションを指定して webpack を実行して、ネイティブ ウォッチャーの代わりにポーリングを使用してみてください--watch --watch-poll
。
Laravel Homestead で私のために働いてください
--watch --watch-poll
Vim を使用している場合は、backupcopy をデフォルトの auto ではなく yes に設定してみてください。そうしないと、Vim が元のファイルの名前を変更して新しいファイルを作成することがあり、webpack ウォッチが台無しになります。
https://github.com/webpack/webpack/issues/781
これが当てはまる場合は、これをvim設定に追加してください:
バックアップコピーを設定=はい
rsync同期でVagrant(2.1.15)を使用するVirtualBox(5.2.18)Ubuntu(18.04)VM内でもこの問題が発生しました。突然、最初のビルドは問題なく実行されますが、Webpack はその後の変更を考慮しませんfs.inotify.max_user_watches=524288
。Webpack構成に追加poll: true
しても役に立ちませんでした。
機能するだけvagrant-notify-forwarder
でした (何らかの理由で vagrant-fsnotify は機能しませんでした)、ホストにファイルを保存した後、再構築が速すぎて、rsync がそのタスクを完了するのに十分な時間がなかったと思います (おそらく量が原因で)私のVagrantfile内の同期されたディレクトリの?)。
aggregateTimeout
最後に、Webpack 構成でも増やして、時計を再び機能させました。
module.exports = {
watch: true,
watchOptions: {
aggregateTimeout: 10000
},
...
}
この解決策がうまくいく場合は、この値をもう一度下げてみてください。そうしないと、保存するたびにビルドが再起動するまで 10 秒待つ必要があります。デフォルト値は300 ミリ秒です。
この問題を解決した方法は、インポート パスで大文字と小文字のエラーを見つけることでした。ファイル システムのフォルダの最初の文字は小文字で、インポート パスは大文字でした。すべてが正常にコンパイルされたため、これは単なる webpack ウォッチ インクルードの問題でした。
の値が
webpack に影響max_user_watches
しているようです/proc/sys/fs/inotify/max_user_watches
実際の価値を確認するには
$cat /proc/sys/fs/inotify/max_user_watches
16384
私の場合は16384でしたが、それでも十分ではありませんでした。
次のようなさまざまなタイプのソリューションを試しました。
$ echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
しかし、値を変更しても、PC を再起動するとデフォルトの 16384 に戻るようです。
ファイルを作成します。
sudo nano /etc/sysctl.d/90-override.conf
そして、次のものを入力します。
fs.inotify.max_user_watches=200000
私には200000で十分なようです。
ファイルを作成して値を追加したら、PC を再起動するだけで問題ありません。
node_modules
私にとっては、すべてのパッケージをインストールするために npm install または yarn を削除して再度実行することで問題が解決しました
問題は、webpack がキャッシュされている奇妙な URL webpack:/// からスクリプトをロードすることです。キャッシュを防ぐために、スクリプトの最後にバージョンを追加する必要があります。
main-compiled.js?v=<?php echo time()?>"