Laravel 8项目中主包内嵌套子包路由未在route:list中显示问题
排查步骤
- 首先检查主包
pkg-inbound-management的composer.json是否在require段声明了子包依赖:你当前仅在repositories段配置了子包的源地址,未添加"company/fudge-pkg-inbound-management-bridge": "^1.0"到主包的require配置中,composer不会自动安装该子包,也就不会触发子包的服务提供者自动注册。 - 检查子包的服务提供者
FudgePkgInboundManagementBridgeServiceProvider的boot方法是否加载了路由文件,需要添加对应路由加载逻辑,示例如下:
public function boot() { // 替换为实际的路由文件路径 $this->loadRoutesFrom(__DIR__.'/../routes/api.php'); }
- 确认项目端已清除配置和路由缓存,执行以下命令后再查看路由列表:
php artisan config:clear && php artisan route:clear - 检查项目根目录的
composer.json是否在extra.laravel.dont-discover数组中包含了子包名称,如果有则删除该条目,否则Laravel会跳过子包的服务提供者自动注册。 - 确认主包内子包存放路径匹配
repositories配置:主包根目录下需要存在packages/fudge-pkg-inbound-management-bridge文件夹,路径错误会导致composer无法找到子包完成安装。 - 如果你是在本地修改主包代码后引入到项目,需要在项目端执行
composer update company/pkg-inbound-management同步主包的最新修改,确保子包依赖被正确安装。
内容的提问来源于stack exchange,提问作者Ryan H
相关产品推荐
相关产品推荐

