You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel AWS服务器部署执行vendor/bin/sail npm run dev遇ENOSPC错误求助

错误原因解析

这个错误和npm依赖漏洞完全无关,所以你用npm audit fix --force根本解决不了问题。

核心问题是Linux系统的文件监视器数量上限被耗尽:错误里的ENOSPC是"Error NO Space"的缩写,但这里不是磁盘空间不足,而是系统给单个用户分配的inotify文件监视句柄配额用完了。Laravel 9用Vite做前端开发服务器,它需要监听大量文件变化来实现热重载,当项目文件(包括vendor这类目录)数量超过系统默认限制时,就会触发这个错误。

解决步骤

1. 临时提升文件监视器上限(立即生效,重启系统后失效)

在你的AWS服务器宿主机上执行以下命令:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

这会把单个用户可监视的文件数量从默认的8192提升到524288,足够覆盖绝大多数Laravel项目的需求。

2. 让Vite忽略不必要的目录(推荐做法)

Laravel默认的Vite配置可能会监听vendor、node_modules这类不需要热重载的目录,直接修改项目根目录下的vite.config.js,添加忽略规则:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
    server: {
        watch: {
            ignored: ['**/vendor/**', '**/node_modules/**']
        }
    }
});

这样Vite就不会浪费资源监听这些无关目录,从根源上减少文件监视器的使用量。

3. Laravel Sail容器注意事项

因为你用的是Laravel Sail(Docker容器),不需要在容器内单独修改配置,只要宿主机调整了文件监视器上限,容器会自动继承这个设置。

验证修复

完成上述操作后,重新执行命令:

vendor/bin/sail npm run dev

如果不再报错,说明问题已经解决。

内容的提问来源于stack exchange,提问作者Labhrann Robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:00:54