And I don’t mean change the vendor folder name, that’s easy. I mean getting one package in a custom location, whereas the rest still go into vendor.
This will only work with packages that require composer/installers, so if it isn’t your own package and they don’t require that in, then you can stop reading.
Still here? Awesome. In your vendor package, you need to add the installer
composer require composer/installers
Now in your composer.json, change (or add) the type. The package we just required in is actually to help various CMS’es and frameworks, so you must supply a valid type. Thankfully, it doesn’t matter which we choose, as we override the install path anyway.
Commit that, and then go to your main project. In the composer.json, add the following:
Now when you run composer install, you’ll see everything but your package in the vendor folder, and your custom package in its custom location! 😀