求助:nwidart/laravel-modules在Windows WSL无法识别模块但OSX正常
排查方向建议
检查WSL文件系统挂载位置
不要把代码放在Windows挂载的分区(如/mnt/c等),这类跨文件系统的挂载可能存在权限、符号链接或文件系统特性问题。将代码克隆到WSL原生的Ubuntu目录(如/home/[你的用户名]/),重新启动Sail后再测试。验证模块目录与配置路径
- 进入Sail容器:
sail shell - 查看模块目录是否存在:
ls -la Modules/,确认所有模块文件夹都正常存在 - 检查
config/modules.php中的scan配置项,确保路径与实际模块目录一致,注意WSL下的路径大小写(Ubuntu是大小写敏感的)
- 进入Sail容器:
修正容器内的权限
虽然本地用户拥有root权限,但Sail容器默认使用sail用户运行。在容器内执行:chown -R sail:sail Modules/确保模块目录的所属用户与容器运行用户一致。
清理应用缓存
执行以下命令清理各类缓存,避免缓存导致的识别问题:sail artisan cache:clear sail artisan config:clear sail artisan module:cache更新Composer自动加载
克隆代码后可能自动加载规则未更新,执行:sail composer dump-autoload确保模块的类和配置被正确纳入自动加载体系。
确认模块版本一致性
在容器内执行:sail composer show nwidart/laravel-modules核对版本是否与OSX端完全一致,版本差异可能导致模块扫描逻辑不同。
检查文件大小写敏感性
Windows文件系统大小写不敏感,但Ubuntu(包括WSL)是敏感的。确认模块目录、文件名的大小写与OSX端完全一致(比如Modules/Admin不能变成modules/admin),否则会导致扫描失败。
内容的提问来源于stack exchange,提问作者bstory
相关产品推荐
相关产品推荐

