在必须通过缺少SSH访问权限的FTP手动部署到客户端服务器之前,我运行了composer install --no-dev
。当我这样做时,我收到了以下错误:
PHP Fatal error: Class 'Way\Generators\GeneratorsServiceProvider' not found in C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php on line 158
PHP Stack trace:
PHP 1. {main}() C:\www\test.dev\laravel\artisan:0
PHP 2. require_once() C:\www\test.dev\laravel\artisan:30
PHP 3. require() C:\www\test.dev\laravel\bootstrap\start.php:60
PHP 4. Illuminate\Foundation\ProviderRepository->load() C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\start.php:210
PHP 5. Illuminate\Foundation\ProviderRepository->compileManifest() C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php:58
PHP 6. Illuminate\Foundation\ProviderRepository->createProvider() C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php:122
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'Way\\Generators\\GeneratorsServiceProvider' not found","file":"C:\\Ampps\\www\\test.dev\\laravel\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\ProviderRe
pository.php","line":158}}Script php artisan clear-compiled handling the pre-update-cmd event returned with an error
[RuntimeException]
Error Output: PHP Fatal error: Class 'Way\Generators\GeneratorsServiceProvider' not found in C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php on line 158
PHP Stack trace:
PHP 1. {main}() C:\www\test.dev\laravel\artisan:0
PHP 2. require_once() C:\www\test.dev\laravel\artisan:30
PHP 3. require() C:\www\test.dev\laravel\bootstrap\start.php:60
PHP 4. Illuminate\Foundation\ProviderRepository->load() C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\start.php:210
PHP 5. Illuminate\Foundation\ProviderRepository->compileManifest() C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php:58
PHP 6. Illuminate\Foundation\ProviderRepository->createProvider() C:\www\test.dev\laravel\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php:122
每个app.php
文件都有'Way\Generators\GeneratorsServiceProvider'
行。
在运行该composer命令之前,这工作正常。为什么会发生这种情况?如何解决?
Laravel 4.1。
答案 0 :(得分:3)
在composer.json
文件中,您只有way/generators
作为开发计算机依赖项。如果每个'Way\Generators\GeneratorsServiceProvider'
文件中都有服务提供者app.php
,则表示way/generators
是开发计算机以及部署计算机依赖关系。通过执行composer install --no-dev
,您说只有开发机器依赖的软件包不应该进入vendor
目录,这意味着软件包way/generators
未安装在vendor
目录。这就是你收到错误的原因。
由于way/generators
仅是开发依赖项,因此您应该从'Way\Generators\GeneratorsServiceProvider'
中删除app/config.php
,以便部署计算机不会查找它。
此外,如果您正在使用开发计算机并执行composer install --no-dev
,way/generators
目录中的vendor
软件包将不会安装,您将收到上述错误。因此,您必须使开发机器环境不是local
,以测试它是否在部署机器中工作。