我正在运行ubuntu 14.04,注意到当我为依赖于google
、doctrine
、twig
等供应商的包运行composer.phar update
时,它会将下载的文件存储在本地~/.composer/cache/files/vendor
中。然而,当我自己创建了一个库包,并在另一个测试包中"需要"它时,它并没有在/cache/files/
文件夹中下载这些文件(但确实向/repo/https---packagist.org/*.json
文件中添加了条目)。
我想知道composer.phar在什么情况下下载文件并存储在缓存中?我之所以这么问,是因为我将来要构建很多应用程序,包括条令、符号和zend框架等组件,我不希望composer.phar
为每个应用程序一次又一次地下载这些框架的副本,从而浪费互联网带宽。当然,另一个优点是,如果我决定切换ubuntu并转到其他发行版,我不想再下载大量的composer包。
我个人的猜测是,由于我没有在github repo中标记我的lib包(它仍然是dev-master
),所以它没有存储在缓存中。有人能确认一下吗?
1.composer.json应用程序的require
部分依赖于google/apiclient
:
"require": {
"google/apiclient": "1.*.*"
}
2.composer.json依赖prahladyeri/indiegogo
的应用程序require
部分:
"require": {
"prahladyeri/indiegogo": "dev-master"
},
"license": "MIT",
"minimum-stability": "dev"
如果Composer克隆了一个git存储库,那么它没有使用缓存。
标记版本将作为ZIP文件从Github API下载,因为它们通常比整个存储库小,并且它们被放入缓存目录中。
尽早发布,经常发布。如果你标记了每一个你认为稳定并且可以使用的提交,没有人会反对。使用语义版本控制,您可以有很多选项来标记仍在发展中的不稳定版本,但您对用户有很大帮助。