4

我刚刚了解了作曲家,并且即将在一个更大的项目中第一次使用它。我有一个问题:我的项目实际上是 24.5MB,其中 24 个来自我的供应商目录。

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

非常感谢!:-)

4

2 回答 2

5

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

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

除此之外,Composer 不会自行影响下载和包含的软件的打包 - 它只是下载 ZIP 文件(可能是原始存储库的缩减副本),或克隆它(这是最大的变体)。

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

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

于 2014-01-26T15:46:16.237 回答
1

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

我发现了一个非常酷的项目,名为 'altax' -> http://kohkimakimoto.github.io/altax/。它使我能够将我需要采取的所有步骤集成到一个完全可控的部署过程中。

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

最后,它将构建和捆绑文档并创建两个版本 - 一个已压缩并准备好放入更新通道,另一个将用于销售。

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

于 2015-04-28T09:13:05.280 回答