如何在作曲家中遗漏所有不必要的东西以进行最终构建?

时间:2014-01-26 15:27:52

标签: php composer-php packagist

我刚刚学习了作曲家,并准备在一个更大的项目中首次使用它。我遇到的一个问题是:我的项目实际上大约是24,5MB,其中24个来自我的供应商目录。

据我所知,在供应商中包含的大多数库中,composer还提供文档文件,测试等。是否有一种自动化的方法可以省去所有这些?我只想将许可证和真正需要的源文件打包到最终版本中。

非常感谢! : - )

2 个答案:

答案 0 :(得分:5)

Composer提供的最明显的选项是使用--no-dev选项运行安装步骤,以省略任何require-dev的内容,即PHPUnit的副本和其他专门用于开发的内容。

唯一的另一个选择是使用--prefer-dist下载包含软件版本的ZIP文件,而不是从源存储库中克隆它。

除了Composer不影响下载和包含软件的包装外,它只是下载ZIP文件(可能是原始存储库的简化副本),或克隆它(这是最大的变体)全部)。

如果您已经安装了没有任何建议的命令行选项的软件包,那么最好完全删除供应商目录并运行另一个composer update --prefer-dist以删除任何克隆的存储库并将其替换为下载的版本。

请注意,不建议使用dev-master等开发版本或允许通过minimum-stability:dev使用dev-stable软件包。它通常会导致克隆存储库。

答案 1 :(得分:1)

虽然一年多前我问过这个问题,但对我来说仍然是最新的。只想发布我最终使用的解决方案。

我发现了一个名为'altax'的非常酷的项目 - > http://kohkimakimoto.github.io/altax/。它允许我集成我在完全可控的部署过程中所需的所有步骤。

我的最终部署命令将首先更新所有供应商,然后运行phpunit以确保。如果一切顺利,它会完全复制当前项目并省去所有无用的东西(如.git,doc文件夹,测试等)。这使我的项目从25缩小到2.4 MB。

为了完成任务,它将构建并捆绑文档并创建两个版本 - 一个已压缩并准备放入更新通道,另一个将用于销售。

最重要的是,我自己使用一些简单的工具编写了部署,并且可以完全控制它的功能。