我对使用Composer和Bitbucket关于我的库分发的正确方法感到困惑,可能是因为我是Composer和Bitbucket的新手。
我的问题是:我在Bitbucket上有两个存储库,第一个是简单的实用程序库(Utility),第二个是主项目(MainProject)。两者都有一个分支,即主分支。
我想在MainProject中使用Utility,所以我写了两个composer.json。
Mainproject composer.json:
{
"require": {
"vendor/utility": "*"
},
"repositories": [
{
"type": "vcs",
"url": "https://MyUsername@bitbucket.org/MyUsername/utility.git"
}
]
}
Utility composer.json:
{
"name": "vendor/utility",
"autoload": {
"psr-4": {
"Vendor\\": "src/"
}
}
}
这个配置完美无缺,我的意思是,如果我在MainProject上启动'composer install',就可以正确克隆Utility。但是在MainProject的vendor目录中,我获得了所有的Utility文件,包括测试目录和phpunit.xml等无用的文件。
我尝试使用此处提供的解决方案:https://www.reddit.com/r/PHP/comments/2jzp6k/i_dont_need_your_tests_in_my_production/,我通过Sourcetree创建了存档,但之后?我该如何使用这个档案?我怀疑我错过了一些基本知识。
如果我想通过composer将Utility作为一个包也用于其他应用程序,但没有它的测试和其他文件,这是正确的方法吗? 我应该使用.gitattribute还是有一种简单的方法来创建dist版本?我不明白怎么处理Bitbucket,也许是因为我是新手。
一点帮助?
答案 0 :(得分:0)
我知道情况看起来有点令人不满意,但Reddit主题“我不需要在我的作品中进行测试”只是故事的一个方面。另一方面是“我需要在部署前检查中进行测试,以验证您的代码是否与我的一样有效”。
所以有两个相互矛盾的愿望:要么没有测试,要么有它们。
Composer无法为您解决此问题。如果您不喜欢该过程获得的文件,则可以编写一个脚本,在将项目置于实际状态之前删除它们。
目前没有通过Composer计划的自动帮助,因为对于那些需要较少文件的人来说,在composer install
之后删除它们比在其他方面更容易删除它们。