Laravel & Vite报错:EACCES权限拒绝,无法打开'public/hot' 求助
解决Laravel Sail运行
npm run dev权限错误的方法 方法一:在容器内执行npm命令
Sail基于Docker容器运行,宿主机与容器的用户权限不匹配是核心问题,正确操作是进入容器内执行命令:
- 启动Sail容器:
./vendor/bin/sail up -d - 进入容器终端:
./vendor/bin/sail shell - 在容器内运行开发命令:
npm run dev
这种方式生成的public/hot文件会匹配容器内的权限规则,不会触发权限拒绝错误。
方法二:调整宿主机public目录权限
如果需要在宿主机直接执行npm,先确保public目录具备可写入权限:
- 开放目录读写权限:
chmod -R 775 public - 或者将目录所有者改为当前用户:
sudo chown -R $USER:$USER public
完成后重新运行npm run dev即可。
方法三:修改Vite热更新文件路径(可选)
若上述方法无效,可通过修改Vite配置,将热更新文件转移到权限更宽松的目录:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import { storage_path } from './vendor/laravel/framework/src/Illuminate/Foundation/helpers'; export default defineConfig({ plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'], refresh: true, hotFile: storage_path('vite.hot'), // 将热更新文件移至storage目录 }), ], });
修改配置后重新执行npm run dev即可。
内容的提问来源于stack exchange,提问作者AlexE123
相关产品推荐
相关产品推荐

