composer.josn和composer.lock有什么区别

介绍

小编给大家分享一下composer.josn和composer.lock有什么区别,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,下面由<强>作曲家教程栏目给大家介绍作曲家。josn和作曲家。锁的区别,以及作曲家安装和作曲家updata的区别详解,希望对需要的朋友有所帮助!

<强>问题说明

我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自这个文档的:

<强>  composer.josn和作曲家。锁有什么区别

作曲家更新这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害。

因为作曲家更新的逻辑是按照作曲家。json指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是所有扩展包,举个例子,你在项目一开始的时候使用了独白,当时的配置信息是

“独白/monolog":“1。*“,

安装的是独白1.1版本,而一个多月以后的现在,独白已经是1.2了,运行命令后直接更新到1.2,这时项目并没有针对1.2进行过测试,项目一下子变得很不稳定,情况有时候会比这个更糟糕,尤其是在一个庞大的项目中,你没有对项目写完整覆盖测试的情况,什么东西坏掉了你都不知道。

那应该使用哪个<强>作曲家命令强呢?安装、更新还是要求吗?

接下来我们一一解释。

简单解释

作曲家安装,如有作曲家。锁文件,直接安装,否则从作曲家。json安装最新扩展包和依赖;

作曲家更新——从作曲家。json安装最新扩展包和依赖;

作曲家更新供应商/包-从作曲家。json或者对应包的配置,并更新到最新;

作曲家需要新的/包-添加安装新/包,可以指定版本,如:作曲家需要新的/包~ 2.5。

<>强流程

下来介绍几个日常生产的流程,来方便加深大家的理解。

<>强流程一:新项目流程

创建作曲家。json,并添加依赖到的扩展包;

运行作曲家安装,安装扩展包并生成作曲家。锁;

提交作曲家。锁到代码版本控制器中,如:git;

<>强流程二:项目协作者安装现有项目

克隆项目后,根目录下直接运行作曲家安装从作曲家。锁中安装指定版本的扩展包以及其依赖;

此流程适用于生产环境代码的部署。

<>强流程三:为项目添加新扩展包

使用作曲家要求供应商/包添加扩展包;

提交更新后的作曲家。json和作曲家。锁到代码版本控制器中,如:git;

<强>关于作曲家。锁文件

作曲家。锁文件里保存着对每一个代码依赖的版本记录(见下图),提交到版本控制器中,并配合作曲家安装使用,保证了团队所有协作者开发环境,线上生产环境中运行的代码版本的一致性。

 composer.josn和作曲家。锁有什么区别

<强>关于扩展包的安装方法

那么,准备添加一个扩展包,安装,更新,需要三个命令都可以用来安装扩展包,选择哪一个才是正确的呢?

答案是:使用作曲家要求命令

另外,在手动修改作曲家。json添加扩展包后,作曲家更新新的/包进行指定扩展包更新的方式,也可以正确的安装,不过不建议使用这种方法,因为,一旦你忘记敲定后面的扩展包名,就会进入万劫不复的状态,别给自己留坑呀。

上面的概念不论对新手或者老手来说,都比较混淆,主要记住这个概念:

原有项目新添加扩展的,都使用作曲家需要新的/包这种方式来安装。

需要加版本的话

作曲家要求“foo/bar: 1.0.0"

更新指定扩展到指定版本

有时候你之前使用过的扩展包,加入了新功能,你想更新单独这个扩展包到指定版本,也可以使用需要来操作。

如下面例子,需要更新“萨米人/萨米人”:“3.0。“到”萨米/萨米人”:“3.2。"

 composer.josn和作曲家。锁有什么区别

命令行运行:

 composer.josn和作曲家。锁有什么区别

看完了这篇文章,相信你对composer.josn和composer.lock有什么区别有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

composer.josn和composer.lock有什么区别