作曲家:巨大的供应商文件夹

时间:2014-01-06 20:47:46

标签: php laravel-4 composer-php

我正在尝试使用Composer并来自RubyGems / Bundler背景,它确实表现出一些有趣的行为。

我尝试创建一个新的Laravel项目,令我惊讶的是,我发现我最终得到了一个超过70兆字节的供应商文件夹。

虽然Laravel确实提供了很多功能,但我发现它的大小很奇怪,所以我检查了vendor文件夹的内容,发现它不仅包含代码,还包含单元测试,文档和整个git历史记录。对于Swiftmailer,我甚至为各种电子邮件标准找到了lenghty RFC。

虽然访问依赖项的规范和存储库历史记录很方便,但它确实会创建一个相当耗时的部署过程,并且会使生产服务器中包含无关数据。

我确实理解我可能会编写一个工匠命令来“构建”应用程序并通过查看所有git历史来清除依赖关系,但它似乎是一个可能已经解决的问题的肮脏解决方案。 / p>

所以问题是:是否存在安装composer依赖关系的方法,因此只下载了运行(Laravel)应用程序所需的代码?

更新:使用--prefer-dist

我发现您可以在创建新项目时传递--prefer-dist选项,.e.g

composer create-project laravel/laravel my-new-project --prefer-dist

这使得Composer更喜欢压缩分发而不是直接从VCS获取源代码(例如GitHub)

这使您无法获取git历史记录并将供应商文件夹减少到17兆字节。但是,规格,文档,例如仍然包括在内。如果有办法将其降低到几兆字节,那就太好了。

2 个答案:

答案 0 :(得分:2)

您可能想看一下这个包:

https://github.com/barryvdh/composer-cleanup-plugin

你甚至可以改进这一点,我不知道它是否也删除了.git存储库等。

答案 1 :(得分:1)

我的供应商文件夹大小约为17 MB。不确定您的安装出了什么问题,但70 MB不是它应该具有的大小。我正在使用Laravel 4.1。据我记得,我将它从Github下载为.zip(https://github.com/laravel/laravel/archive/master.zip),然后让Composer进行“安装”。