【问题标题】:Git nested dependencies (aws-sdk) not added to repositoryGit 嵌套依赖项 (aws-sdk) 未添加到存储库
【发布时间】:2015-03-05 15:38:29
【问题描述】:

我已通过 Composer 将 php aws-sdk 添加到我的应用程序中。它还下载了 - 作为 aws-sdk 的依赖项 - 两个模块:Guzzle 和 Symfony 事件调度程序。

当我提交更改并将更改推送到我的存储库时,添加的唯一模块是 aws-sdk,其他 2 个模块是“未跟踪文件”。

如何将模块添加到存储库?

如果我现在推送到 aws,则不会添加模块,对吗? 另一位开发人员同步了我的更改,但在其本地应用程序已损坏 - 因为两个必需的模块...

谢谢。

【问题讨论】:

  • 您是否对vendor/ 文件夹进行版本控制?通常你会忽略这一点,只提交composer.jsoncomposer.lock 文件。然后其他开发者可以composer install 安装库及其依赖项。
  • 是的,我明白为什么不复制到 repo。我用git aws.push 推送到弹性beantalk,我认为,从当前分支中拉出。如果当前分支没有这些文件夹: - 我如何运行 composer install? - 在我运行 composer install 之前,该应用程序将无法运行? .如何在运行 composer install 之前将应用程序推送到 eb 而不会破坏应用程序?有一些解决方法吗?谢谢!
  • Elastic Beanstalk supports Composer out of the box。我找不到一个很好的资源来了解它是如何工作的,但我认为如果你将 composer.jsoncomposer.lock 文件放在存储库的根目录中,EB 将自动安装你的依赖项。另见stackoverflow.com/questions/17521843/…
  • 好的,我刚试过,但似乎没有安装嵌套模块(aws-sdk 在那里,但不是它的依赖项 - guzzle 和事件调度程序)。在我的 composer.json 中,我只需要 aws-sdk - 在 aws-sdk 的 composer.json 中需要上述依赖项。我需要添加我的 composer.json guzzle 和 event-dispatcher 吗?或者我只需要从我的仓库中删除供应商文件夹并让 eb 安装它?再次感谢。

标签: git composer-php aws-sdk


【解决方案1】:

Composer 推荐 versioning your composer.json and composer.lock filesnot your vendor/ directory,Composer 自己通过 composer installcomposer update 命令创建和管理。

Elastic Beanstalk 会在您部署时为您构建应用程序,包括安装其依赖项。大多数竞争对手也是如此。

自 2012 年 12 月起,EB 拥有supported Composer out of the box。不幸的是,似乎没有太多关于其工作原理的文档,但其他 PaaS 提供商通常会从存储库的根目录中读取依赖文件。

OP 在上面的 cmets 中确认,在存储库根目录中具有 composer.jsoncomposer.lock 文件并从版本控制中删除 vendor/ 目录会导致应用程序在 EB 上正确构建。

【讨论】:

    猜你喜欢
    • 2016-07-04
    • 2011-05-30
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 2022-01-23
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多