If you use Composer to manage dependencies on your WordPress site, you probably know the name John P. Bloch. He maintains a regularly-updated fork of WordPress that’s tailored for use with Composer. It turns up a lot in WordPress boilerplate.
Recently he made some changes to his fork, moving some of the core WordPress components to a separate repository named (appropriately)
This isn’t a problem if you’re setting up a new project, as when you run
composer install it will install the now three repositories (
johnpbloch/wordpress-core-installer, and now
johnpbloch/wordpress-core) in vendor/johnpbloch.
If you’re reading this page, you tried running
composer update on an existing project and received this error message:
[InvalidArgumentException] Two packages cannot share the same directory!
The solution is pretty simple, if a little dramatic: Use Composer to remove then reinstall WordPress.
I say “dramatic” because for that brief period after you’ve finished removing WordPress and before you’ve finished reinstalling it, your site will be a whole lot of nothing, so move with a purpose.
- Find the line in your
composer.jsonfile that calls for WordPress. Depending on what—if any—version you’re requiring, it should look something like this:
Once you find it, delete it and save your
composer update. Composer will remove
- Add the line back to your
composer.jsonand save, then run
composer updateagain. Composer will install the three repositories.
And that should be it.