Shubham Khatri
Shubham Khatri

Reputation: 282160

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

Upvotes: 6

Views: 2859

Answers (2)

AlexV
AlexV

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

Shubham Khatri
Shubham Khatri

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

Related Questions