Composer安装不相关的库

时间:2016-12-14 22:34:04

标签: php composer-php

当我在我的供应商文件夹中尝试composer require something/something时 它开始安装很多我没有要求的东西。

就像我刚刚做composer require ramsey/uuid一样,Composer创建了一个名为vendor的子文件夹,然后开始下载很多库,例如Laravel,Symfony和Twig(这些只是我所知道的。)

这首先发生在我试图要求Twig的时候。我刚刚删除了不相关的库并保留了Twig。

有没有人知道造成这种情况的原因是什么?

3 个答案:

答案 0 :(得分:2)

如果作曲家正在下载并安装你没有要求的东西,那么可能 要求的东西是以下其中一个:

  • 在composer.json文件中定义了一些 require 语句
  • 您正在安装的内容所需的依赖项。我不熟悉树枝,但它可能需要laravel,symfony等。人。如果您打算使用其中一个框架,我建议您在需要twig之前先安装它。
  • 某个缓存的东西,比如上面提到的composer.lock文件

Composer创建名为vendor的文件夹,作为其提取和安装的所有库/包的主目录。

答案 1 :(得分:2)

你总是可以通过runnung检查,为什么Composer安装了什么东西

$ composer why webmozart/assert

该命令将向您显示,哪些根要求取决于包(在这种情况下为webmozart/assert)。

答案 2 :(得分:1)

最好的方法是删除所有内容并从头开始,因为你还没有真正完成任务(正如你所说,你的composer.json文件是空的):

$ rm -rf vendor/
$ rm composer.json
$ rm composer.lock

然后,启动composer并再次安装依赖项:

$ composer init
$ composer require ramsey/uuid

你现在应该全力以赴。

我的假设是您基于较旧的composer install文件运行composer.lock,该文件将重新下载依赖项。