Composer 没有使用 "dist" 版本,甚至被特别告知
Composer isn't using "dist" versions, even is specifically told to
我有一个托管在私有 git 存储库中的依赖项,并且正在使用 satis 进行包管理。
我已经将对 repo 主分支的提交标记为“1.0.0”,并且在 composer.json 文件中,我希望在其中使用该包,我指定了
"require": {
"package/name": "~1.0"
},
"repositories": [
{
"type": "composer",
"url": "http://myownsatisrepo"
},
"config": {
"preferred-install": "dist"
}
并且是 运行 命令 composer install --prefer-dist
所以我已经指定了一个稳定的包版本这一事实应该确保 composer 不会只是克隆 repo(包括我不想要的 .git 文件夹),而是下载一袋。安装命令的额外配置标志和参数应该做同样的事情。
不过,composer 只克隆了包。
Composer 只有知道如何获取才能下载分发 ZIP。否则(或者如果获取失败),它将克隆存储库。
当您使用某些众所周知的 Git 存储库托管程序(如 Github 和 Bitbucket)时,Composer 知道它们的 API 结构以及下载 ZIP 文件的位置。如果您正在使用其他东西,则不会。
作为最后的后备方案,Satis 中的元数据理论上可以包含 ZIP 文件的下载 URL。 Satis 允许您配置创建这些文件,但是除了 Composer 元数据之外,您还拥有所有 ZIP 文件的托管能力。如果您不让 Satis 创建 ZIP,并且使用的存储库不提供 Composer 已知的下载功能,那么无论如何您总是会触发存储库的克隆。
请注意,一旦 Composer 以一种或另一种方式获得源代码,它将一直保留下去,直到您删除整个 vendor 文件夹。特别是如果你克隆了存储库,如果 Composer 只是更新到最新的提交然后检查所需的提交,它会更快并且使用更少的流量。
我有一个托管在私有 git 存储库中的依赖项,并且正在使用 satis 进行包管理。 我已经将对 repo 主分支的提交标记为“1.0.0”,并且在 composer.json 文件中,我希望在其中使用该包,我指定了
"require": {
"package/name": "~1.0"
},
"repositories": [
{
"type": "composer",
"url": "http://myownsatisrepo"
},
"config": {
"preferred-install": "dist"
}
并且是 运行 命令 composer install --prefer-dist
所以我已经指定了一个稳定的包版本这一事实应该确保 composer 不会只是克隆 repo(包括我不想要的 .git 文件夹),而是下载一袋。安装命令的额外配置标志和参数应该做同样的事情。 不过,composer 只克隆了包。
Composer 只有知道如何获取才能下载分发 ZIP。否则(或者如果获取失败),它将克隆存储库。
当您使用某些众所周知的 Git 存储库托管程序(如 Github 和 Bitbucket)时,Composer 知道它们的 API 结构以及下载 ZIP 文件的位置。如果您正在使用其他东西,则不会。
作为最后的后备方案,Satis 中的元数据理论上可以包含 ZIP 文件的下载 URL。 Satis 允许您配置创建这些文件,但是除了 Composer 元数据之外,您还拥有所有 ZIP 文件的托管能力。如果您不让 Satis 创建 ZIP,并且使用的存储库不提供 Composer 已知的下载功能,那么无论如何您总是会触发存储库的克隆。
请注意,一旦 Composer 以一种或另一种方式获得源代码,它将一直保留下去,直到您删除整个 vendor 文件夹。特别是如果你克隆了存储库,如果 Composer 只是更新到最新的提交然后检查所需的提交,它会更快并且使用更少的流量。