I've got Craft 3.1.32 up and running on dev machines and we're ready to get it into our test/stage enviromnments, which are built through a GitLab CI/CD. While doing this, we noticed some plugins wouldn't install and would throw a composer error:

craft/plugins/[plugin-name]/ does not exist and could not be created.

Now, craft/plugins is the Craft 2 location for plugins, and that directory doesn't exist in Craft 3, right? I see there's a file that gets created called /vendor/composer/installers/src/Composer/Installers/CraftInstaller.php that has a reference to craft/plugins/{$name} so I'm guessing that this file is being invoked to do some quick stuff to clean the plugin name. But I'm not sure what the directory is really doing.

Any ideas?

EDIT: It looks like there's a nice file within the composer/composer repo that dates back to Craft 2: See CraftInstaller.php in GitHub that is pointing at old directories

1 Answer 1


I found the real root cause. A internal business plugin which I migrated from Craft 2 to Craft 3 had a composer.json file which required composer/installers and that little bugger was mucking up the whole thing. So if you find that in your composer.lock file for Craft 3, go in deep and find it!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.