Watchpack 错误(观察者):错误:EMFILE:打开文件太多,观察“/”

问题描述 投票:0回答:3

在不对 webpack 配置进行任何更改的情况下,webpack 希望监视所有父目录,直到根目录。

所以它会导致错误: EMFILE: Too much open files, watch '/'

有人有同样的问题吗,或者有人知道我如何找到原因,或者有人知道解决方案吗?

Webpack 配置是:

const path = require('path');

module.exports = {
    entry: './src/index.js',
    watch: true,
    watchOptions: {
        ignored: '/node_modules/',
    },
    output: {
        path: path.resolve(__dirname, 'dist'),
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: '/node_modules/',
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env'],
                    },
                },
            },
            {
                test: /\.less$/i,
                use: [
                  // compiles Less to CSS
                  'style-loader',
                  'css-loader',
                  'less-loader',
                ]
            }
        ],
    }
}
node.js webpack
3个回答
12
投票

我多次遇到同样的问题。重新启动可以工作,但很乏味。 这篇文章here指出了另一个解决方案。

检查

cat /proc/sys/fs/inotify/max_user_instances
(我的是128)并增加值。

可以通过以下方式完成:

sudo sysctl fs.inotify.max_user_instances=256

这立即奏效了。

重新启动后,该值必须恢复到

/etc/sysctl.conf

请参阅 https://www.suse.com/support/kb/doc/?id=000020048


2
投票

这是一个系统问题。重启后,一切正常。


0
投票

我遇到了这个问题,并且能够通过运行解决它而无需重新启动:

killall node

仅供参考,我使用的是 Node v20.x 的 Macbook Pro (M2 Pro)

© www.soinside.com 2019 - 2024. All rights reserved.