You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Ubuntu重启机器后Nuxt开发服务器npm run dev无法运行求助

解决Nuxt.js开发服务器启动报错ENOSPC的问题

嘿,这个问题我之前折腾过好一阵!你碰到的ENOSPC错误,本质是Linux系统给进程分配的文件监听数量上限不够导致的。

Nuxt在开发模式下依赖webpack的热重载功能,它需要监听项目里所有文件的变化,而Ubuntu 18.04默认的inotify(Linux用来实现文件监听的机制)监听配额比较低,重启系统后这个配额会重置回默认值,所以每次开机启动项目都会踩坑。

你那个怪异的临时修复能生效其实是巧合——创建新项目并启动dev服务时,系统可能临时调整了资源分配,但这完全是碰运气,根本解决不了根源问题。

下面是两种靠谱的解决方案:

1. 临时生效(当前会话有效,重启后失效)

直接在终端执行以下命令,立即提升监听上限:

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p

2. 永久生效(重启系统后依然有效)

这个方法一劳永逸:

  • 打开系统sysctl配置文件:
    sudo nano /etc/sysctl.conf
    
  • 在文件的末尾添加一行配置:
    fs.inotify.max_user_watches=524288
    
  • 保存并退出nano编辑器(按Ctrl+O回车保存,再按Ctrl+X退出)
  • 执行命令让新配置立即生效:
    sudo sysctl -p
    

额外检查项

如果你执行完上面的操作还是有问题,可以做以下排查:

  • 查看当前的监听上限是否修改成功:
    cat /proc/sys/fs/inotify/max_user_watches
    
  • 查看系统当前总文件监听数,确认是否有其他进程占用了大量配额:
    lsof | grep inotify | wc -l
    
  • 查看哪些进程在占用文件监听资源:
    find /proc/*/fd -lname anon_inode:inotify | cut -d/ -f3 | xargs -I{} cat /proc/{}/cmdline | head -20
    

内容的提问来源于stack exchange,提问作者Nick Briz

火山引擎 最新活动