Php 如何在创建dist packageget时仅保留所需文件

Php 如何在创建dist packageget时仅保留所需文件,php,composer-php,Php,Composer Php,当使用composer获取依赖项时,会下载大量不必要的文件,如文档、测试单元等。这些都会使生成的文件变大。如何仅包含composer文件夹中的生产文件?不幸的是,大多数软件包开发人员都不会利用。gitattributes文件,使用或不使用——Preference dist对它们来说是一样的。我提出了以下吞咽任务:这并不像乍一看那么容易 Composer本身不是处理项目已发布代码的合适地方。所以下一站是.gittributes Symfony试图做到这一点,他们的经验让他们成功了。Composer

当使用composer获取依赖项时,会下载大量不必要的文件,如文档、测试单元等。这些都会使生成的文件变大。如何仅包含composer文件夹中的生产文件?

不幸的是,大多数软件包开发人员都不会利用
。gitattributes
文件,使用或不使用
——Preference dist
对它们来说是一样的。我提出了以下吞咽任务:

这并不像乍一看那么容易

Composer本身不是处理项目已发布代码的合适地方。所以下一站是
.gittributes

Symfony试图做到这一点,他们的经验让他们成功了。Composer在文档中有关于使用
.gittributes
的信息,但是

本质上,从不同的分发路径中删除包的某些部分可能会导致更多的问题,而不是解决问题。从我的角度来看,CLI开关
——preference dist
——preference source
是一个选择器,可以选择克隆一个需要花费很多时间的大型存储库,也可以下载一个具有确切版本的ZIP文件,但结果应该是相同的,也就是说,我不应该仅仅因为一个决定“为部署而优化”的包决定从ZIP中删除文档和测试,就被迫对所有依赖项选择源代码

是的,在开发过程中,我通常会查看他们的代码和测试,以帮助我了解正在发生的事情,或者应该发生的事情和不应该发生的事情


结论:Composer不是一个部署工具。如果您关心应用程序的大小,那么您的任务就是删除所有不需要或不想要的内容,并可能优化其他内容(缩小JS和CSS、优化图像等)。为您进行此优化不应该是作曲家或任何软件包维护者的任务。

@PaulCrovella感谢您的链接。