Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

webpack --watch exits after building once

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

like image 947
Shubham Khatri Avatar asked Jun 01 '17 17:06

Shubham Khatri


2 Answers

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
like image 125
Shubham Khatri Avatar answered Oct 09 '22 02:10

Shubham Khatri


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.

like image 21
AlexV Avatar answered Oct 09 '22 02:10

AlexV