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) wordpress-core.
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, 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:
"johnpbloch/wordpress": "4.7.3"Once you find it, delete it and save your
composer.json. - Run
composer update. Composer will removejohnpbloch/wordpressandjohnpbloch/wordpress-core-installer. - Add the line back to your
composer.jsonand save, then runcomposer updateagain. Composer will install the three repositories.
And that should be it.