Laravel+React应用启动服务器触发ENOSPC错误求助
解决Ubuntu下Laravel+Vite启动时ENOSPC文件监视器超限错误
错误原因
Ubuntu系统默认的inotify文件监视器数量上限较低,Vite在监控项目文件(包括vendor目录下的大量文件)时触发了系统限制,导致报错ENOSPC: System limit for number of file watchers reached。
解决方案
1. 临时生效(当前会话有效)
执行以下命令立即提升文件监视器数量上限:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /proc/sys/fs/inotify/max_user_watches && sudo sysctl -p
2. 永久生效(重启系统后依然有效)
修改系统配置文件,永久调整上限:
echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
3. 优化Vite监控范围(推荐)
在Laravel项目的vite.config.js中配置忽略vendor目录(该目录文件无需实时监控),减少Vite需要监视的文件数量:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [ laravel({ input: ['resources/js/app.jsx'], refresh: true, }), react(), ], server: { watch: { ignored: ['**/vendor/**'] } } });
说明
删除node_modules或重新安装依赖无法解决此问题,因为错误根源是Ubuntu系统的文件监视器数量限制,而非项目依赖问题。
内容的提问来源于stack exchange,提问作者jm1004
相关产品推荐
相关产品推荐

