当我尝试在供应商文件夹中使用composer require something/something
时它开始安装很多我不要求的东西。
就像我刚刚做过composer require ramsey/uuid
一样,作曲家创建了一个名为供应商的子文件夹,然后开始下载许多库,例如Laravel,Symfony和Twig(这些只是我所知道的)。
当我尝试需要树枝时,这第一次发生。我只是删除了无关的库并保留了树枝。
有人想知道造成这种情况的原因吗?
如果作曲家正在下载和安装您不要求的内容,那么可能是要求的东西:
- 某些 require 在composer.json文件中定义的语句
- 您正在安装的内容所需的依赖关系。我对树枝不熟悉,但可能需要Laravel,Symfony等。al。如果您打算使用以下框架之一,建议您先安装该框架,然后才需要树枝。
- 某个地方的一些缓存的东西,例如上面提到的composer.lock文件
作曲家创建了称为供应商的文件夹,作为其获取和安装的所有库/软件包的家庭。
您可以随时检查,为什么作曲家安装了某些内容,runnung
$ composer why webmozart/assert
命令将向您展示,哪个根要求取决于软件包(在这种情况下为webmozart/assert
)。
最好的方法是删除所有内容并从头开始,因为您还没有做太多事情(如您所说,您的composer.json
文件是空的):
$ rm -rf vendor/
$ rm composer.json
$ rm composer.lock
然后,启动作曲家并再次安装依赖项:
$ composer init
$ composer require ramsey/uuid
您现在应该使所有工作都起作用。
我的假设是您基于旧的composer.lock
文件运行composer install
,该文件将重新下载依赖项。