在Laravel中,如果同时有多个开发者,怎么进行包的更新?
我曾想吧vendor加入到git中。但是开发中有一些包是不需要放到生产环境的。
我想请教一下各位大侠,是怎么处理这个问题的。
---更新---
我遇到的问题是这样的。
假如有两个开发者,他们已经完成了项目的初始化。现在开发者A在本地添加了依赖:composer require vendor/package
这个包是一个Laravel的扩展,需要注册一个ServiceProvider。所以开发者A就需要在config/app.php中添加这个Provider。之后是一系列的后继配置blabla~。OK,现在A可以提交代码,并push到远程分支了。
而后开发者C(别问我B哪去了)pull下了代码。现在他在执行的代码时发现缺少依赖。那现在他需要添加这个依赖。
我现在的方式是执行了composer update vendor/package
因为Laravel在composer.json中注册了几个钩子,其中一个会在更新时执行。这个命令在初始化的时候,因为要加载ServiceProvider,而代码中A添加的Provider在依赖中并不存在。所以composer就happy的抛出异常退出了。
这就是我的问题。请问大家是怎么处理的
回复内容:
是这样的,如果其中一个人增加了一项依赖,并且是注册到了Provider中。此时其他人更新完代码后,执行composer update会出现错误。
我曾想吧vendor加入到git中。但是开发中有一些包是不需要放到生产环境的。
我想请教一下各位大侠,是怎么处理这个问题的。
---更新---
我遇到的问题是这样的。
假如有两个开发者,他们已经完成了项目的初始化。现在开发者A在本地添加了依赖:composer require vendor/package
这个包是一个Laravel的扩展,需要注册一个ServiceProvider。所以开发者A就需要在config/app.php中添加这个Provider。之后是一系列的后继配置blabla~。OK,现在A可以提交代码,并push到远程分支了。
而后开发者C(别问我B哪去了)pull下了代码。现在他在执行的代码时发现缺少依赖。那现在他需要添加这个依赖。
我现在的方式是执行了composer update vendor/package
因为Laravel在composer.json中注册了几个钩子,其中一个会在更新时执行。这个命令在初始化的时候,因为要加载ServiceProvider,而代码中A添加的Provider在依赖中并不存在。所以composer就happy的抛出异常退出了。
这就是我的问题。请问大家是怎么处理的
1、有人已经require
包,就证明这个配置已经在 composer.json
文件中了,对于你来说,你 pull 了代码,只需要 composer install
就可以了,完全不需要update
的
2、另外一种情况避免问题,就是有大于一个的开发者,那最好是确实谁是主导者,谁能决定一些什么事情。
首先,新的包要放到composer.json里面,然后只上传该文件到git里面。其他团员可以随时更新composer.json文件。
其次,如果有些包只是在开发环境而不是在线环境的话,你可以放需要的包到:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
//然后只安装开发环境所需要的服务包 这样你就可以随时掌握不同的服务包在不同的环境下面了
composer install --dev
你应该把执行composer update
时出的错误贴上来,否则别人不知道你出的究竟是什么问题!
将 composer.json 加入 git 版本控管
vendor 包就不是问题了..