如何在使用composer省略选择文件的同时需要包

neu*_*ert 5 php composer-php

假设我想要一个包含作曲家的包但是该包有一些我认为不应该包含的目录.例如.也许是tests/目录或其他什么.有没有办法从作曲家下载的内容中省略这个目录?

--prefer-dist标志,但需要repos有一个.gitattributes文件存在与export-ignore各种文件/目录.但是,如果有问题的回购没有那个呢?当然,我可以提出拉动请求,但如果他们不接受呢?如果项目被放弃怎么办?由于这些原因,我认为该--prefer-dist标志不是最理想的,我想要一个答案(如果存在的话)而不是"使用--prefer-dist".

Sve*_*ven 2

Symfony 尝试过这样做,他们的经验让他们恢复了这个决定。Composer.gitattributes在文档中有有关使用的信息,但将其删除

从本质上讲,从不同的分发路径中删除包的某些部分可能会导致比它解决的问题更多的问题。从我的角度来看,CLI 开关--prefer-dist--prefer-source一个选择器,要么必须克隆一个需要很长时间的巨大存储库,要么下载具有该确切版本的 ZIP - 但结果应该是相同的,即我不应该被迫为--prefer-source所有我的依赖项这样做因为决定“优化部署”的单个包决定从其 ZIP 中删除文档和测试。

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

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