关于composer.json、composer.lock的使用和composer.lock是否应该提交到git

要为您的项目安装定义的依赖项,只需运行composer install命令即可。运行composer install 的时候composer将会去读取composer.lock文件,如果composer.lock不存在或者没有内容,那么composer install将执行composer.json,并将最新版本的文件下载到vendor项目目录中,同时更新composer.lock文件,否则将根据composer.lock去下载更新所有依赖。这样关系就很简单了,运行composer install的时候如果有composer.lock则根据composer.lock去更新下载依赖,否则根据composer.json去下载更新依赖。
这时候又引发了一个讨论,在用git部署项目的时候是否应该讲composer.lock提交包git上,composer官方是建议提交的,原因如下:
将此文件提交给版本库很重要,因为它会导致任何设置项目的人都使用与您正在使用的完全相同的依赖项。您的服务器,生产机器,您团队中的其他开发人员,所有和所有人都运行在相同的依赖关系上,从而减轻了仅影响部署部分的错误的潜力。即使您单独开发,在重新安装项目六个月后,即使您的依赖关系从那以后发布了许多新版本,您也可以确信已安装的依赖项仍然可以工作。也就是说将composer.lock提交到git上可以在不同机器上部署这个项目所安装的依赖是完全相同的,因为都是根据composer.lock文件去更新。
如上所述,该composer.lock文件阻止您自动获取最新版本的依赖项。要更新到最新版本,请使用composer update命令,同时应该注意的是在开发过程中一般不适应update命令,因为update命令将更新所有的依赖到最新,这个动作是危险的,你之前使用的类库可能已经更新的面目全非而导致你之前的代码不可用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,059评论 25 709
  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 8,328评论 0 9
  • Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Compo...
    bycall阅读 6,754评论 0 1
  • Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Compo...
    dreamer_lk阅读 6,972评论 0 15
  • Git 命令 创建 Git 可管理的仓库 查看当前仓库的状态 添加到仓库,实际上是添加到暂存区 删除到仓库 把暂存...
    Haozj阅读 2,790评论 0 1