Reputation: 282160
I was using webpack --watch
statement to run my webpack in watch mode for building my ReactJS app. However for some reason, it stopped working now. It now just compiles the code once and terminates
I tried the methods suggested in this SO post: webpack --watch isn't compiling changed files
However it did not solve the problem for me. Any help is appreaciated
Upvotes: 6
Views: 2859
Reputation: 259
This happen mostly because it watches the node_modules
folder and exceeds the limit. In this case, rather than modifying the host system, use:
watchOptions: {
aggregateTimeout: 300,
poll: 1000,
ignored: /node_modules/
}
to the webpack.config.js
exports.
Upvotes: 7
Reputation: 282160
The problem seems to have arose because of the inotify watch limit
Listen uses inotify by default on Linux to monitor directories for changes. It's not uncommon to encounter a system limit on the number of files you can monitor.
The current watch limit can be seen through the command
$ cat /proc/sys/fs/inotify/max_user_watches
In my case it was 8192 which is the default value for linux X64 systems
To change it temporarily we need to run the following commands
$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p
For permanently setting it we should run run
$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
Upvotes: 15