php 编写器从缓存加载

aij0ehis  于 2023-01-29  发布在  PHP
关注(0)|答案(9)|浏览(122)

我在使用composer安装/卸载laravel中的一些依赖项时遇到了一个问题,这些依赖项在从composer.json中删除并删除其供应商文件夹后又回来了。
我最初用的是dflydev的markdown包,但是现在我想把它改成michelf的php-markdown,但是我不能卸载旧的,因为它是从缓存加载回来的,我在AppData\Roaming\Composer检查过了,它是空的。
有什么线索能解释为什么会这样吗?

- Installing dflydev/markdown (dev-master dee1f7a)
    Loading from cache
t3irkdon

t3irkdon1#

您可以使用以下命令清除该高速缓存,而不管您使用的是什么操作系统:

php composer.phar clear-cache

或者composer是否全局安装

composer clear-cache
vlf7wbxs

vlf7wbxs2#

我认为,您可以使用--no-cache选项标记运行composer命令,例如

composer install --no-cache

或者

composer require <package-name> --no-cache

或者

composer update [<package-name>] --no-cache
knpiaxh1

knpiaxh13#

如果要清除所有包缓存,请尝试以下操作:

$ composer clearcache

或者只清除一个或几个包:

$ composer clearcache packagename1 packagename2 ...

您还可以使用clear-cache,它是clearcache的别名。
来源:https://blog.liplex.de/clear-composer-cache/

ubby3x7f

ubby3x7f4#

composer在vendor/packagename约定下缓存软件包,所以你不会因为这个packagename被其他厂商的软件包使用而遇到任何问题。
该高速缓存位置是:

*窗口:%LOCALAPPDATA%\编写器\文件\供应商\软件包名称
*Linux:~/.composer/缓存/文件/供应商/软件包名称
*Mac OS:~/.composer/缓存/文件/软件包名称

nxagd54h

nxagd54h5#

不要手动编辑您的composer.json文件来删除软件包-它将保留在composer.lock中。
使用composer remove删除旧软件包,然后使用composer require安装替换软件包。

wi3ka0sx

wi3ka0sx6#

在某些情况下(例如OpenSuse 42.1),所有用户缓存都将放入:

~/.cache/

对于编写器,与其他应用程序相同,该高速缓存路径为:

~/.cache/composer/

因此,只需删除此文件夹如下:

rm -fR ~/.cache/composer
ve7v8dk2

ve7v8dk27#

运行以下命令

rm -rf ~/.composer/cache*

如果权限被拒绝,则添加sudo

x9ybnkn6

x9ybnkn68#

Window上,我看到 composer 缓存文件位于
C:\Users\{your_user}\AppData\Local\Composer\files

它存储ZIP文件。下面的图像有2个Zip文件,因为我已经下载了2个版本的monolog(1.0.1和1.0.2)

要删除该高速缓存,只需删除Zip文件或文件夹。

wfsdck30

wfsdck309#

因此,在我的MacBook上唯一有效的方法是从我的composer.json中删除软件包,删除我的composer.lock,运行composer update,然后将软件包添加回composer.json,删除我的composer.lock(再次),并运行composer update(再次)。我在Laravel Nova的示例中有一个本地包,我将其从Camelcase改为全小写,无论我做了什么,它一直在用旧的CamelCase名称添加包。不管我是否清除缓存或任何东西。

相关问题