1、在 Laravel 6 中,执行命令:php artisan telescope:publish,报错:There are no commands defined in the “telescope” namespace.。如图1
PS E:/wwwroot/wshop/platform> php artisan telescope:publish There are no commands defined in the "telescope" namespace.
2、查看 composer.json,laravel/telescope 存在于 require-dev 中。
"require-dev": { "allure-framework/allure-phpunit": "^1.3", "barryvdh/laravel-debugbar": "^3.6", "beyondcode/laravel-dump-server": "^1.0", "beyondcode/laravel-er-diagram-generator": "^1.4", "brianium/paratest": "^2.0", "filp/whoops": "^2.0", "fzaninotto/faker": "^1.4", "laravel/telescope": "^2.1", "mockery/mockery": "^1.0", "nunomaduro/collision": "^3.0", "phpunit/phpunit": "^7.5", "squizlabs/php_codesniffer": "^3.5" },
3、查看目录 /config,已经存在文件 telescope.php,文件:/app/Providers/TelescopeServiceProvider.php 已存在。但是目录 /public/vendor/telescope 不存在。
4、访问:https://wshop.local/telescope ,报错:RuntimeException
The Telescope assets are not published. Please run: php artisan telescope:publish 。如图2
5、要查看所有可用的 Artisan 命令的列表,使用 list 命令。其中不存在 telescope
6、查看文件 /app/Providers/AppServiceProvider.php,在 AppServiceProvider 的 register 方法中未手动注册服务,存在如下代码
// 流水线运行调用artisan命令的时候会进入到此逻辑,如果日常开发需要使用,在开发时候可以屏蔽这个逻辑 if ($this->app->isLocal() && !$this->app->runningInConsole()) { $this->app->register(/Laravel/Telescope/TelescopeServiceProvider::class); $this->app->register(TelescopeServiceProvider::class); }
7、删除掉 !$this->app->runningInConsole() 后,再次执行:php artisan telescope:publish,执行成功。如图3
// 流水线运行调用artisan命令的时候会进入到此逻辑,如果日常开发需要使用,在开发时候可以屏蔽这个逻辑 if ($this->app->isLocal()) { $this->app->register(/Laravel/Telescope/TelescopeServiceProvider::class); $this->app->register(TelescopeServiceProvider::class); }
PS E:/wwwroot/wshop/platform> php artisan telescope:publish Publishing complete. Copied Directory [/vendor/laravel/telescope/public] To [/public/vendor/telescope] Publishing complete.
8、再次访问:https://wshop.local/telescope ,响应 200。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/250718.html