i ran in a problem using composer for installing/uninstalling some dependencies in laravel which coming back after deleting them from composer.json
and deleting their vendor folder, i initially used dflydev's markdown package but now i wanted to change it to michelf's php-markdown, but i cant uninstall the old one since it comes back loaded from cache, which i checked at AppData\Roaming\Composer
and is empty, any clue on to why this is happening?
- Installing dflydev/markdown (dev-master dee1f7a)
Loading from cache
You can use the following command to clear the cache irrespective of the OS you are on:
php composer.phar clear-cache
or if composer is installed globally
composer clear-cache
I think, you can run your composer
commands with --no-cache
option flag like
composer install --no-cache
Or
composer require <package-name> --no-cache
Or
composer update [<package-name>] --no-cache
If you want to clear all packages cache, please try following:
$ composer clearcache
Or to just clear one or a few packages:
$ composer clearcache packagename1 packagename2 ...
You can also use clear-cache
which is an alias for clearcache
.
Source : https://blog.liplex.de/clear-composer-cache/
composer caches packages under vendor/packagename convention. So you shouldn't run into any issue, just because the packagename is used in another vendor's package.
the cache locations are:
Windows: %LOCALAPPDATA%\Composer\files\vendor\packagename
Linux: ~/.composer/cache/files/vendor/packagename
Mac OS: ~/.composer/cache/files/packagename
composer config cache-dir
Don't edit your composer.json
file manually to remove a package - it will remain in composer.lock
.
Use composer remove
to delete the old package then composer require
to install the replacement.
composer.json
and they are magically returning > There are reasons why you might need to manually edit composer.json Absolutely. Again, not applicable in this context, where the OP is trying to remove a whole package. I could have said "run composer update
after deleting the value" but that comes with so much more required knowledge.
In some cases (for example OpenSuse 42.1) all user cache are puts in:
~/.cache/
For the composer, the same as other applications, the cache path is:
~/.cache/composer/
So, just remove this folder as follow:
rm -fR ~/.cache/composer
run the following command
rm -rf ~/.composer/cache*
if Permission denied add sudo
rm -rf
command that includes a wildcard is not a good idea.
On Window, I see the composer cache file located in
C:\Users\{your_user}\AppData\Local\Composer\files
https://i.stack.imgur.com/Wp6Lf.png
https://i.stack.imgur.com/ZaSqM.png
To remove the cache, simply delete the Zip file or folder.
composer config cache-dir
So the only thing that worked for me on my Macbook was removing the package from my composer.json
, deleting my composer.lock
, running composer update
, then adding the package back to composer.json
, deleting my composer.lock
(again), and running composer update
(again). I had a local package in my instance of Laravel Nova that I changed to all lowercase from CamelCase and no matter what I did, it kept adding the package with the old CamelCase name. Didn't matter if I cleared caches or anything.
Success story sharing
composer.lock
file, theclear-cache
commands had no effect.