我使用webpack --watch
语句在监视模式下运行我的 webpack 来构建我的 ReactJS 应用程序。但是由于某种原因,它现在停止工作。它现在只编译一次代码并终止
我尝试了这篇 SO 帖子中建议的方法:webpack --watch 未编译更改的文件
然而它并没有为我解决问题。任何帮助是appreaciated
我使用webpack --watch
语句在监视模式下运行我的 webpack 来构建我的 ReactJS 应用程序。但是由于某种原因,它现在停止工作。它现在只编译一次代码并终止
我尝试了这篇 SO 帖子中建议的方法:webpack --watch 未编译更改的文件
然而它并没有为我解决问题。任何帮助是appreaciated
问题似乎是由于inotify手表限制而出现的
在 Linux 上,Listen 默认使用 inotify 来监视目录的变化。遇到系统限制您可以监视的文件数量的情况并不少见。
通过命令可以看到当前的watch限制
$ cat /proc/sys/fs/inotify/max_user_watches
就我而言,它是 8192,这是 linux X64 系统的默认值
要临时更改它,我们需要运行以下命令
$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p
为了永久设置它,我们应该运行 run
$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
发生这种情况主要是因为它监视node_modules
文件夹并超出限制。在这种情况下,不要修改主机系统,而是使用:
watchOptions: {
aggregateTimeout: 300,
poll: 1000,
ignored: /node_modules/
}
到webpack.config.js
出口。