我有一个依赖于模块y的项目X,它们都是我的私人项目。每个人在bitbucket上都有自己的git存储库。每个都有一个composer.json。
当我在项目X上运行composer install
时,它从其存储库中获取Y并将其推入X的vendor
目录。
问题是它也在vendor/jodes/Y/
中推了一个.git
目录。
这是一个问题,因为某些东西一直打开。git目录下的文件,这意味着我的[持续集成]脚本在重复这个过程时无法删除.git
目录。我想这是我的IDE。
我如何让composer从存储库中获得Y,而不做'。git目录?
X的作曲家。json是:
{
"name": "jodes/X",
"require": {
"jodes/Y": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "https://Jodes@bitbucket.org/Jodes/Y.git"
}
]
}
似乎作曲家基本上运行git clone
从存储库获取?相反,是否有一种方法可以使它在vendor
目录中执行类似于git archive
的操作?(而不是zip文件)。
作为一个解决方案,我已经尝试配置我的IDE (Netbeans)忽略.git
目录,但我的脚本仍然得到"权限拒绝"错误时,试图删除它。
作为奖励,我还想利用使用git archive
的其他优点,例如能够指定将从存档中排除的文件或目录或其他模式。
composer [install|update] --prefer-dist
应该可以。
默认情况下,特别是当你引用分支,而不是标签("版本")时,composer倾向于将依赖项作为源代码获取。如果您指定了--prefer-dist
,则可以显式地告诉composer使用归档文件。