php - IlluminateContractsContainerBindingResolutionException - Target class [CommandMakeCommand] does not exist

Solution:

i also had same problem, in my case nwidart/laravel-modules package upgraded to 8.3 version, i downgraded to 8.2 version and problem solved

Answer

Solution:

see here: https://docs.laravelmodules.com/v9/introduction

If you have an existing config file, and you get an error:

Target class [CommandMakeCommand] does not exist

Then the config file will need updating first import the commands class:

use Nwidart\Modules\Commands;

Next replace the commands array with:

'commands' => [
    Commands\CommandMakeCommand::class,
    Commands\ComponentClassMakeCommand::class,
    Commands\ComponentViewMakeCommand::class,
    Commands\ControllerMakeCommand::class,
    Commands\DisableCommand::class,
    Commands\DumpCommand::class,
    Commands\EnableCommand::class,
    Commands\EventMakeCommand::class,
    Commands\JobMakeCommand::class,
    Commands\ListenerMakeCommand::class,
    Commands\MailMakeCommand::class,
    Commands\MiddlewareMakeCommand::class,
    Commands\NotificationMakeCommand::class,
    Commands\ProviderMakeCommand::class,
    Commands\RouteProviderMakeCommand::class,
    Commands\InstallCommand::class,
    Commands\ListCommand::class,
    Commands\ModuleDeleteCommand::class,
    Commands\ModuleMakeCommand::class,
    Commands\FactoryMakeCommand::class,
    Commands\PolicyMakeCommand::class,
    Commands\RequestMakeCommand::class,
    Commands\RuleMakeCommand::class,
    Commands\MigrateCommand::class,
    Commands\MigrateRefreshCommand::class,
    Commands\MigrateResetCommand::class,
    Commands\MigrateRollbackCommand::class,
    Commands\MigrateStatusCommand::class,
    Commands\MigrationMakeCommand::class,
    Commands\ModelMakeCommand::class,
    Commands\PublishCommand::class,
    Commands\PublishConfigurationCommand::class,
    Commands\PublishMigrationCommand::class,
    Commands\PublishTranslationCommand::class,
    Commands\SeedCommand::class,
    Commands\SeedMakeCommand::class,
    Commands\SetupCommand::class,
    Commands\UnUseCommand::class,
    Commands\UpdateCommand::class,
    Commands\UseCommand::class,
    Commands\ResourceMakeCommand::class,
    Commands\TestMakeCommand::class,
    Commands\LaravelModulesV6Migrator::class,
],

Answer

Solution:

Just add this line:

use Nwidart\Modules\Commands\CommandMakeCommand;

in first of config/modules.php file as a namespace

Above namespace will resolve only commandMakeCommand issue, but if you want to set all command namespace then you need to add the namespace at the top.

namespace Nwidart\Modules\Commands;

Answer

Solution:

Hope this helps (backup your project first):

  1. First remove nwidart/laravel-modules by running: composer remove nwidart/laravel-modules

  2. Then remove config/modules.php by deleting it.

  3. Reinstall nwidart/laravel-modules by running: composer require nwidart/laravel-modules

Source: Githubhot, the answer by mohamedsharaf

Answer

Solution:

If someone is still looking for the answer so follow these steps

As mentioned in this link see here: https://docs.laravelmodules.com/v9/introduction

If you have an existing config file, and you get an error:

Target class [CommandMakeCommand] does not exist

Then the config file will need updating first import the commands class, and in your config folder update the modules.php file includes

use Nwidart\Modules\Commands;

Then replace the commands array with: add Commands\ before each value or simple copy and replace the array

 'commands' => [
    Commands\CommandMakeCommand::class,
    Commands\ComponentClassMakeCommand::class,
    Commands\ComponentViewMakeCommand::class,
    Commands\ControllerMakeCommand::class,
    Commands\DisableCommand::class,
    Commands\DumpCommand::class,
    Commands\EnableCommand::class,
    Commands\EventMakeCommand::class,
    Commands\JobMakeCommand::class,
    Commands\ListenerMakeCommand::class,
    Commands\MailMakeCommand::class,
    Commands\MiddlewareMakeCommand::class,
    Commands\NotificationMakeCommand::class,
    Commands\ProviderMakeCommand::class,
    Commands\RouteProviderMakeCommand::class,
    Commands\InstallCommand::class,
    Commands\ListCommand::class,
    Commands\ModuleDeleteCommand::class,
    Commands\ModuleMakeCommand::class,
    Commands\FactoryMakeCommand::class,
    Commands\PolicyMakeCommand::class,
    Commands\RequestMakeCommand::class,
    Commands\RuleMakeCommand::class,
    Commands\MigrateCommand::class,
    Commands\MigrateRefreshCommand::class,
    Commands\MigrateResetCommand::class,
    Commands\MigrateRollbackCommand::class,
    Commands\MigrateStatusCommand::class,
    Commands\MigrationMakeCommand::class,
    Commands\ModelMakeCommand::class,
    Commands\PublishCommand::class,
    Commands\PublishConfigurationCommand::class,
    Commands\PublishMigrationCommand::class,
    Commands\PublishTranslationCommand::class,
    Commands\SeedCommand::class,
    Commands\SeedMakeCommand::class,
    Commands\SetupCommand::class,
    Commands\UnUseCommand::class,
    Commands\UpdateCommand::class,
    Commands\UseCommand::class,
    Commands\ResourceMakeCommand::class,
    Commands\TestMakeCommand::class,
    Commands\LaravelModulesV6Migrator::class,
],

Answer

Solution:

You can try to downgrade nwidart/laravel-modules version in composer.json file. Just change this line to the below line.

"nwidart/laravel-modules": "8.2.*"

Then delete composer.lock file and now, run this command.

composer install

Answer

Solution:

in config/modules add name full path to command Nwidart\Modules\Commands

'commands' => [
    Nwidart\Modules\Commands\CommandMakeCommand::class
    ...
],

Answer

Solution:

If previous reply doesn't work for you, If still not work after changing the version in composer.json as well as deleting the composer.lock and vendors, you can fix the version like this

"nwidart/laravel-modules": "8.2.*"

delete composer.lock and vendor and run

composer install

Answer

Solution:

This Is Not Related Routes Or Any Other Parts Of Your App , When You Cant Run Composer Update Or Artisan Commands You Have Problem In Booting Laravel , In This Case : Go To Your Config Folder Open Modules File And Check "Command" Key My Problem Fixed By This Way ! Good Day !

Source