What is the correct way to remove a package from Laravel using PHP Composer?
So far I've tried:
- Remove declaration from file composer.json (in the "require" section)
- Remove any class aliases from file app.php
- Remove any references to the package from my code :-)
- Run
composer update - Run
composer dump-autoload
None of these options are working! What am I missing?
20 Answers 20
Composer 1.x and 2.x
Running the following command will remove the package from vendor (or wherever you install packages), composer.json and composer.lock. Change vendor/package appropriately.
composer remove vendor/package
Obviously you'll need to remove references to that package within your app.
I'm currently running the following version of Composer:
Composer version 1.0-dev (7b13507dd4d3b93578af7d83fbf8be0ca686f4b5) 2014年12月11日 21:52:29
Documentation
https://getcomposer.org/doc/03-cli.md#remove-rm-uninstall
Updates
- 18/10/2024 - Updated URL to
remove-rm-uninstalldocumentation - 27/12/2023 - Fixed URL to
remove-rmdocumentation - 26/10/2020 - Updated answer to assert command works for v1.x and v2.x of Composer
7 Comments
composer remove <package>. Anyway to avoid that? Using version 1.7.2.composer install instead of composer updateI got it working... The steps to remove a package from Laravel are:
- Remove the declaration from file composer.json (in the "require" section)
- **Remove Service Provider from file config/app.php (reference in the "providers" array)
- Remove any class aliases from file config/app.php
- Remove any references to the package from your code :-)
- Run
composer update vendor/package-name. This will remove the package folder from thevendorfolder and will rebuild the Composer autoloading map. - Manually delete the published files (read the comment by zwacky)
It will remove the package folder from the Vendor folder.
4 Comments
composer remove vendor/package, I think.Normally composer remove used like this is enough:
composer remove vendor/package
But if a Composer package is removed and the "config" cache is not cleaned you cannot clean it. When you try like so
php artisan config:clear
you can get an error In ProviderRepository.php line 208:
Class 'Laracasts\Flash\FlashServiceProvider' not found
This is a dead end, unless you go deleting files:
Laravel 5.6
rm bootstrap/cache/config.php
Laravel 9
rm bootstrap/cache/packages.php
It happens usually on automated deployment, when you copy files of a new release on top of old cache. Even if you cleared the cache before copying. You end up with an old cache and a new composer.json file.
3 Comments
config:clear would fix this.You can remove any package just by typing the following command in the terminal, and just remove the providers and alias you provided at the time of installing the package, if any and update the composer,
composer remove vendor/your_package_name
composer update
1 Comment
Running
composer remove package/name
php artisan optimize:clear
e.g "Composer remove mckenziearts/laravel-notify" works for me while using Laravel 8.
Comments
You can do any one of the below two methods:
Running the below command (most recommended way to remove your package without updating your other packages)
$ composer remove vendor/packageGo to your composer.json file and then run command like below it will remove your package (but it will also update your other packages)
$ composer updateAlso need to run this command for clearing cache, config etc.
$ php artisan optimize:clear
Comments
Before removing a package from a composer.json declaration, please remove the cache:
php artisan cache:clear
php artisan config:clear
If you forget to remove the cache and you get a "class not found error" then please reinstall the package, clear the cache and remove again.
Comments
If you are still getting the error after you are done with all the steps in the previous answers, go to your projects, Bootstrap → Cache → config.php. Remove the provider and aliases entries from the cached array manually.
2 Comments
composer remove vendor/package unable to remove the cache entries properly. So, @Ramjith Ap is absolutely correct here.Use:
composer remove vendor/package
This is an example:
Install or add a package
composer require firebear/importexportfree
Uninstall / remove
composer remove firebear/importexportfree
Finally after removing:
php -f bin/magento setup:upgrade
php bin/magento setup:static-content:deploy –f
php bin/magento indexer:reindex
php -f bin/magento cache:clean
Comments
To add the packages, the command is to be like:
composer require spatie/laravel-permission
To remove the packages, the command is to be like:
composer remove spatie/laravel-permission
1 Comment
In case the given answers still don't help you remove that, try this:
Manually delete the line in
requirefromcomposer.jsonRun
composer update
Comments
If this doesn't work "composer remove package/name", you can still remove it manually.
Note : package/name is like spatie etc.
- Go to composer.json and find the package name
- Delete package name from composer.json
- Find the vendor file in your Laravel project.
- Delete the package file which is under vendor
- run
composer installon your terminal
Note : Package File mean is that package that you are looking for. For example, you want to remove Spatie. Then you need to find that with similar name in vendor file and you need to delete it manually.
Your package was removed successfully.
5 Comments
composer.lock? You forgot to add the consequences that deleting the lock file cuases, like updating other dependenciescomposer remove does all this automaticallyYou have two solution:
- Either
removeofcomposer.
composer remove *your_package_name*
- Or delete the line in require from
composer.jsonand then runupdate
composer update
After removed, recommend to run the below two commands.
php artisan cache:clear
php artisan config:clear
Comments
To remove any package in your Laravel project you only need to execute the below command using Composer.
composer remove {packageName}
eg: composer remove maatwebsite/excel
In this command, we are removing maatwebsite/excel package.
Comments
We have come with a great solution. This solution is practically done in Laravel 6. If you want to remove any package from your Laravel Project then you can easily remove the package by following below steps:
Step 1: You must know the package name which you want to remove. If you don't know the complete package name then you can open your project folder and go to the composer.json file and check the name in the require array:
"require": {
"php": "^7.2",
"fideloper/proxy": "^4.0",
"laravel/framework": "^6.2",
"laravel/passport": "^8.3",
"laravel/tinker": "^2.0"
},
Suppose, here I am going to remove the "fideloper/proxy" package.
Step 2: Open a command prompt with your project root folder directory
Step 3: First of all, clear all cache by the following commands. Run the commands one by one.
php artisan cache:clear
php artisan config:clear
Step 4: Now write the following command to remove the package. Here you need to change your package name instead of my example package.
composer remove fideloper/proxy
Now, wait for a few seconds while your package is removed.
1 Comment
composer remove laravel/telescope --dev if it is dev packageOn Laravel 8.*, the following steps work for me:
Run command
composer remove package-nameon the terminalRemove
Providerandaliasesfrom file Config/app.phpRemove the related file from the Config folder.
Remove it from your code where you used it.
1 Comment
- Remove the package folder from the vendor folder (manual delete)
- Remove it from file composer.json and 'composer.lock' files (use Ctrl + F5 to search)
- Remove it from file config/app.php and file bootstrap/cache/config.php files
- Run these commands:
composer remove **your-package-name** php artisan cache:clear php artisan config:clear
1 Comment
composer.lock manually. Calling composer remove is enough, as this removes the package from the vendor folder, and from both composer filesThere are quite a few steps here:
- Go to file composer.json and look for the package and how it is written over there.
- for example
{ "require": { "twig/twig": "^3.0" } }
I wish to remove twig 3.0
Now open cmd and run
composer remove vendor/your_package_nameascomposer remove twig/twigwill remove the package.As a final step, run
composer update. This will surely give you a massage ofnothing to install or update, but this is important in case your packages have inter-dependencies.
3 Comments
composer update is not needed if you just want to remove a packageYou can simply do composer remove { name of the package here }
Comments
To remove a package from your Laravel project using Composer, follow these steps:
Run the Composer Remove Command Open your terminal and run the following command:
composer remove vendor/package-name
Example: If you want to remove the guzzlehttp/guzzle package, run:
composer remove guzzlehttp/guzzle
Clear Cache (Optional) After removing the package, it's good practice to clear Composer's cache:
composer clear-cacheRemove Unused Dependencies (Optional) If there are unused dependencies, you can clean up by running:
composer install composer update --no-devRemove References from Config and Code (If Necessary) Check your config/app.php for any service provider or alias related to the package and remove it. Remove any use statements or dependencies in your controllers, models, or services. If the package has published assets (like migrations or config files), remove them manually.
Dump Autoload (Optional) To refresh Composer's autoload files, run:
composer dump-autoloadRestart Your Server (If Required) If your Laravel application is running, restart it to apply the changes.
Now, your Laravel project should no longer include the removed package! 🚀
Comments
Explore related questions
See similar questions with these tags.
composer update?