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

标签 php composer-php

假设我需要一个带有 composer 的包,但该包有一些我认为不应该包含的目录。例如。可能是 tests/ 目录或其他目录。有没有办法从 Composer 下载的目录中省略这个目录?

--prefer-dist 标志,但这需要 repos 有一个 .gitattributes 文件,其中包含用于各种文件的 export-ignore/目录。但是,如果有问题的 repo 没有那个怎么办?当然,我可以提出拉取请求,但如果他们不接受怎么办?如果项目被放弃怎么办?由于这些原因,我认为 --prefer-dist 标志不是最佳选择,我想要一个答案(如果存在的话)而不是“使用 --prefer-dist”。

最佳答案

Symfony 尝试这样做,他们的经验使他们成为 revert this decision . Composer 在文档中有关于使用 .gitattributes 的信息,但是 removed it .

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

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

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

关于php - 如何在使用 composer 省略选择文件的同时需要一个包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338183/

相关文章:

php - 避免在每个文件中都要求 vendor/autoload.php

php - 在 fat-free 框架中处理 'Duplicate-entry error'

php - MySQL - 如何执行大查询?

php - 用户如何在其他人发帖后发帖?

php - OpenSSL 错误消息 : error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

json - Composer-> 不包含有效的 JSON

composer-php - 无法初始化中央 HHBC 存储库 : Failed to initialize schema

php - 无法使用 php 更新 mysql 表

php - 无法理解此 MySQL 查询目的

php - Composer 安装 * file_put_contents * 无法打开流