Composer 不从缓存中加载存储库包
Composer doesn't load repository packages from cache
当我从干净结帐安装我的应用程序时,它总是从我的本地存储库中获取我的包,而不是像远程包那样从缓存中安装。
我的作曲家文件:
{
"name": "app/name",
"description": "Desc",
"homepage": "http://homepage.com",
"repositories": [
{
"type": "composer",
"url": "http://packages.localrepository.com/",
"options": {
"http": {
"proxy": ""
}
}
}
],
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.*",
"guzzlehttp/guzzle": "4.*",
"local/health-check": "1.*",
"local/file-upload": "1.*",
"rediska/rediska": "dev-master"
}
}
这会产生:
[exec] - Installing guzzle/guzzle (v3.9.2)
[exec] Loading from cache
[exec]
[exec] - Installing local/health-check (1.2.0)
[exec] Cloning f62651a1e2328a03ab7fd3fa8f84239ce7ee3a7c
这是为了适应当前每次都进行干净检查的构建过程。有什么想法吗?
远程包托管在 Github 或其他提供下载标记版本的 ZIP 或 TGZ 文件的方法的托管服务上。 Composer 知道这些服务的 API,并在适当的时候尝试下载 ZIP(如果选择不当,您可以尝试使用 --prefer-dist
强制下载)。
我想您自己的托管代码不在 Github 上。因此,如果 Composer 不知道从哪里获取 ZIP,唯一的其他方法是克隆存储库,无论命令行说什么(另一方面,您可以尝试使用 --prefer-source
强制克隆) .
请注意,这两个选项都不能保证任何事情 - 如果 Composer 无法下载 ZIP,它将克隆 - 如果它无法克隆,例如当那个包的元数据只提到 ZIP 下载,但没有存储库时,它会下载一个 ZIP。
从一种方法切换到另一种方法通常需要删除 vendor
文件夹和 composer.lock
文件,然后再次 运行 Composer。这将作为一个更新操作,所以请注意,如果它破坏了你的依赖关系,你将不得不处理这个问题(即你依赖像 "dev-master" 这样的分支名称而不是标记版本)。
当我从干净结帐安装我的应用程序时,它总是从我的本地存储库中获取我的包,而不是像远程包那样从缓存中安装。
我的作曲家文件:
{
"name": "app/name",
"description": "Desc",
"homepage": "http://homepage.com",
"repositories": [
{
"type": "composer",
"url": "http://packages.localrepository.com/",
"options": {
"http": {
"proxy": ""
}
}
}
],
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.*",
"guzzlehttp/guzzle": "4.*",
"local/health-check": "1.*",
"local/file-upload": "1.*",
"rediska/rediska": "dev-master"
}
}
这会产生:
[exec] - Installing guzzle/guzzle (v3.9.2)
[exec] Loading from cache
[exec]
[exec] - Installing local/health-check (1.2.0)
[exec] Cloning f62651a1e2328a03ab7fd3fa8f84239ce7ee3a7c
这是为了适应当前每次都进行干净检查的构建过程。有什么想法吗?
远程包托管在 Github 或其他提供下载标记版本的 ZIP 或 TGZ 文件的方法的托管服务上。 Composer 知道这些服务的 API,并在适当的时候尝试下载 ZIP(如果选择不当,您可以尝试使用 --prefer-dist
强制下载)。
我想您自己的托管代码不在 Github 上。因此,如果 Composer 不知道从哪里获取 ZIP,唯一的其他方法是克隆存储库,无论命令行说什么(另一方面,您可以尝试使用 --prefer-source
强制克隆) .
请注意,这两个选项都不能保证任何事情 - 如果 Composer 无法下载 ZIP,它将克隆 - 如果它无法克隆,例如当那个包的元数据只提到 ZIP 下载,但没有存储库时,它会下载一个 ZIP。
从一种方法切换到另一种方法通常需要删除 vendor
文件夹和 composer.lock
文件,然后再次 运行 Composer。这将作为一个更新操作,所以请注意,如果它破坏了你的依赖关系,你将不得不处理这个问题(即你依赖像 "dev-master" 这样的分支名称而不是标记版本)。