📜  [nodemon] 内部监视失败:ENOSPC:达到文件监视者数量的系统限制,监视 (1)

📅  最后修改于: 2023-12-03 14:59:08.118000             🧑  作者: Mango

监听文件失败:ENOSPC:达到文件监视者数量的系统限制

当使用nodemon工具来监视文件变化时,可能会遇到以下错误信息:

[nodemon] 内部监视失败:ENOSPC:达到文件监视者数量的系统限制, 监视 '文件路径'

这个错误发生是因为系统限制了同时监视文件的数量,而数量已经达到了上限。这可能是由于操作系统的默认设置导致的。

解决方案

要解决这个问题,有几个可能的解决方案:

  1. 增加系统可监视的文件数量上限

    默认情况下,Linux系统的文件监视者数量是有限的。可以通过修改系统配置文件来增加这个数量。

    编辑以下文件:

    sudo nano /etc/sysctl.conf
    

    在文件末尾添加以下行,并保存文件:

    fs.inotify.max_user_watches=524288
    

    执行以下命令使配置生效:

    sudo sysctl -p
    

    重新启动nodemon,应该就不再出现ENOSPC的错误了。

  2. 减少nodemon监视的文件数量

    如果你的项目中有很多不必要监视的文件,可以减少nodemon监视的文件数量。可以使用--ignore--watch选项来指定需要忽略或仅监视的文件。

    例如,如果你想忽略node_modules文件夹,可以运行以下命令:

    nodemon --ignore node_modules
    
  3. 使用其他工具替代nodemon

    如果以上方法都无法解决问题,你可以考虑使用其他类似的工具,例如foreverpm2,它们也可以用来监视文件变化并自动重启应用程序。

    安装 forever:

    npm install -g forever
    

    安装 pm2:

    npm install -g pm2
    

    使用foreverpm2启动应用程序:

    forever start app.js
    

    pm2 start app.js
    

这些解决方案应该能够解决[nodemon]ENOSPC错误,并使你能够正常使用nodemon来监视文件变化。