php 如何在Composer中省去所有不必要的东西以进行最终构建?

lh80um4z  于 2022-12-28  发布在  PHP
关注(0)|答案(2)|浏览(118)

我刚刚了解了Composer,并即将在一个更大的项目中第一次使用它。我有一个问题:我的项目实际上是大约24,5 MB,其中24个来自我的供应商目录。
据我所知,在供应商提供的大多数库中,composer还提供文档文件、测试等等。有没有一种自动化的方法可以省去所有这些?我只想把许可证和真正需要的源文件打包到最终版本中。
非常感谢!:-)

bihw5rsg

bihw5rsg1#

Composer提供的最明显的选项是使用--no-dev选项运行安装步骤,以忽略任何require-dev的内容,即PHPUnit的副本和其他专用于开发的内容。
唯一的其他选择是使用--prefer-dist下载包含软件版本的ZIP文件,而不是从源存储库克隆该文件。
除此之外,Composer本身不会影响下载和包含的软件的打包-它只是下载ZIP文件(可能是原始存储库的缩减副本),或克隆它(这是所有版本中最大的变体)。
如果您已经安装了软件包,而没有使用我建议的任何命令行选项,那么完全删除vendors目录并运行另一个composer update --prefer-dist以清除任何克隆的存储库并用下载的版本替换它们可能是一个好主意。
请注意,要求使用dev-master这样的开发版本或允许通过minimum-stability:dev使用dev-stable包并不是真正推荐的做法,这通常会导致资源库的克隆。

8iwquhpp

8iwquhpp2#

虽然我在一年多前就提出了这个问题,但它对我来说仍然是最新的。只是想把我最终采用的解决方案贴出来。
我发现了一个非常酷的项目,名为“altax”-〉https://github.com/kohkimakimoto/altax。它允许我在一个完全可控的部署过程中集成所有需要采取的步骤。
我最后的deploy命令将首先更新所有的供应商,然后运行phpunit来确认,如果一切顺利,它将完全复制当前的项目,并删除所有无用的内容(如.git,doc文件夹,测试,等等),这将我的项目从25 MB缩减到2.4 MB。
最后,它将构建和捆绑文档,并创建两个版本-一个压缩并准备放在更新通道中,另一个将用于销售。
最好的部分是我自己用一些简单的工具编写了部署,并且可以完全控制它的功能。

相关问题