4

我正在使用 laravel 4 构建一个应用程序,并希望部署到云服务器以进行进一步测试。我通常做的一般过程是本地>推送到github>克隆到服务器。

问题是我添加的几乎所有 laravel/composer 包都被忽略了,因为它们有自己的 git 存储库——我事先并没有真正考虑过这一点。

我了解子模块的概念,但我不太了解如何设置它们。我是否必须在父树中为我安装到应用程序的每个包添加一个子模块?有没有更自动化的方式来处理这个问题?

还是我完全关闭了,是否应该使用作曲家在服务器上更新这些内容?

4

3 回答 3

3

似乎答案是作曲家: http: //getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md

将 /vendor 添加到 .gitignore 文件,并在第一次克隆后运行 composer install 。

于 2013-04-28T22:48:54.573 回答
1

我认为在生产服务器上运行作曲家是一个严重的错误。请参阅Chef 入门和在部署时运行 composer install

于 2013-05-12T11:47:41.503 回答
1

使用 Composer 时,您根本不必关心 Git 子模块。

在您的本地机器上,您只需指定您的依赖项composer.json,然后运行composer install​​. 现在将您的composer.json and composer.lock添加到您的项目存储库中,但vendor排除.gitignore.

现在要部署您的项目,只需在生产服务器上克隆或拉取项目存储库,然后composer install再次运行以安装所有项目依赖项。

当您更改依赖项时,您会再次执行完全相同的过程,包括composer install在本地和生产机器上。

于 2013-05-07T11:13:50.030 回答