I want to uninstall (and not remove from my composer.json) dev dependencies on a project.
Is there a simple way to do this ?
Running install
or update
with --no-dev
should now remove dev requirements and their dependencies.
Original answer for historical purposes:
Actually no. You can manually rm -rf them from the vendor dir of course, but composer offers no way to uninstall the dev requirements after you did an install with --dev. It's not a huge use case but could warrant a new command line switch, if you would like to report an issue on github.
You can use following command after removing the dependencies in composer.json
file.
composer update
composer install
instead.
Came over this question when looking for the same answer. You can now uninstall installed dev dependencies by simply doing:
composer --no-dev update
It will remove all dev packages that it finds. Though it would interest people landing here the same way I did :)
composer update
, always use composer install
with a committed composer.lock
file. That being said: you can also use the option for that command. Please refer to the accepted answer that was modified to also include this: Seldaek is the author of composer.
update
command may update the packages you were not intended to update while you only wanted to remove the dev dependencies from the vendor directory.
composer.lock
-file there. That means that this command will update exactly 0 dependencies and is perfectly safe to use. Btw, the accepted answer (which was updated with the same information after I put this here) is from the author of composer.
This is not the strict answer but may help someone.
To remove a specific dev dependency:
composer remove --dev squizlabs/php_codesniffer
I answered later but it could help someone else: composer remove friendsofsymfony/elastica-bundle
(for example)
Success story sharing
composer install --no-dev
. This will remove the dev packages leavingcomposer.json
andcomposer.lock
files intact.