我是作曲家发展的新手.我刚开始在当前项目中使用composer.而且我认为我之前已经提出过我的问题,或者我对作曲家说道:D
每个依赖项的供应商中都有许多测试文件和目录.我只是想在将它们上传到服务器之前删除这些测试.
是否有任何命令删除这些测试或我需要手动删除它或什么......?:'(
是否有任何命令删除这些测试或我需要手动删除它或什么......?:'(
这是一个有趣的问题.
目前,您作为包消费者不能自动忽略测试.下载供应商后,没有Composer命令可以清除所有文件夹.要解决此问题,请在应用程序构建过程中清理vendor dir.它是在手动选择的文件集的引导期间删除运行,然后上载.这是一个设置步骤,可与用于生产的缓存预热或初始数据库设置相媲美.无聊的工作:(
之前请求并讨论了从供应商文件夹中删除测试文件夹(以及其他开发内容)的主题,例如参见Composer问题#1750和#4438.
很多用户都想要这个功能,但遗憾的是Composer还没有提供这个功能.我想,如果有人投入时间来解决问题,Composer维护者会合并排除文件夹(reduce功能).努力建立标准.它还可以创建一个Composer插件来提供此功能.
解决此问题的一种方法是为文件提供一般的黑名单/白名单功能,以便在文件中保留生产composer.json.仅添加一个排除部分只能部分地解决这个问题,因为你不能覆盖在包中做出的决定.
在获取Source而不是Dist时,也许还可以尊重包文件中的export-ignore设置.gitattributes.
另一种方法是专注于自动加载描述.
Composer提供require-dev和autoload-dev旁边require和autoload.这意味着我们在开发和生产类之间有明确的分离.想想phpunit依赖项和你的tests文件夹,定义在require-dev和中定义的测试命名空间autoload-dev.
这使得可以使用自动加载映射并删除未包含在Composers"自动加载范围"中的所有文件以进行生产.
David Grudl(@dg)在他的Composer Cleaner中使用了这种方法 .
它的实验.做一个备份.
.gitattributes带export-ignore指令的文件是的,这是减少git档案大小的一种方法,但它从未被PHP社区用作标准或最佳实践.
Composer维护者正在推广它的使用(参见alcohol和naderman的评论),而例如Symfony放弃了它的使用.
目前对此问题的最佳做法没有明确的指导.所以,我不确定这是一种最佳做法,我们应该真正推广或建议这一点.
它用于"Dists",取而代之的是composer --prefer-dist.
即使一些开发人员采用这种做法,使用Composer获取"Source"的很多方法都没有得到解决:hg,svn,git source.