我正在尝试使用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兆字节。但是,规格,文档,例如仍然包括在内。如果有办法将其降低到几兆字节,那就太好了。
答案 0 :(得分:2)
答案 1 :(得分:1)
我的供应商文件夹大小约为17 MB。不确定您的安装出了什么问题,但70 MB不是它应该具有的大小。我正在使用Laravel 4.1。据我记得,我将它从Github下载为.zip(https://github.com/laravel/laravel/archive/master.zip),然后让Composer进行“安装”。