供应商文件夹应该在源代码管理中吗?

时间:2015-05-20 17:01:30

标签: php composer-php

例如,像

这样的文件
/vendor/composer/classLoader.php
/vendor/composer/autoload_classmap.php

在我正在进行的项目中签入。我不确定这是否是好习惯,因为我记得读过Laravel建议/vendor.gitignore

2 个答案:

答案 0 :(得分:11)

不,应排除vendor目录,不要手动触摸。安装依赖项时,composer update / composer install将生成类加载器。

答案 1 :(得分:7)

,您的供应商文件夹不属于您的源代码,不应该是 在您的git存储库中签入。

良好的工作流程将是:

  • 检查你的composer.json
  • 每当您想要升级依赖项时:
    • 本地存储库
    • 上运行composer update
    • 签入已更改的composer.lock
    • 生产存储库
    • 上部署并运行composer install

为什么还要检查composer.lock:

您的composer.json定义了在运行composer update时将使用的可接受的依赖项版本。

仅使用composer.json时出现的问题是具有可重现的版本(例如,在所有环境中完全相同的依赖版本)。这就是为什么当你运行composer install时,如果有一个composer.lock文件,composer将改为加载与composer.lock文件中写入的完全相同的依赖项。无论何时运行composer.lock,您的composer update文件都会更新。