首页 > 其他分享 >composer install、update、require 区别

composer install、update、require 区别

时间:2024-06-14 11:22:34浏览次数:21  
标签:依赖 install lock require update json composer

1. 前言

首先要搞清楚的一件事情是,所有的依赖都定义在composer.json中。

在指定安装扩展包的时候,并不是非要指明一个精确的版本。

那么就有可能发生这么一个情况,对于同一份composer.json,我们在不同时刻拉取到的依赖文件可能不同(因为composer会在满足条件的情况下去拉取最新的那份依赖),从而导致一些异常情况。

composer updatecomposer install 正是为了解决这个问题而出现的。

2. composer install 和 composer update 的区别

相同点

当本地不存在 composer.lock 文件时, composer instal 和 composer update 作用相同, 都会去读取 composer.json 中定义的依赖, 并且去拉取符合条件的最新版本的依赖, 然后把所拉取到的依赖放入 vendor 目录下, 最后把所有拉取的依赖的精确版本号写入 composer.lock 文件

不同之处

当本地存在 composer.lock 文件时, composer install 将会去读取 composer.lock 中存储的版本号, 并且以此标准去下载依赖; 而 composer update 则不会去读取 composer.lock 中的版本号, 他仍然会去读取 composer.json 中定义的依赖, 生成新的 composer.lock 文件

composer install 和 composer update 的选择

初始安装依赖优先使用 composer install, 因为他会去读取 composer.lock 文件, 按照精确的版本号拉取依赖。

不要轻易的使用 composer update 更新所有的依赖, 因为它会去读取 composer.json 中依赖,拉取满足条件的最新依赖包,很容易出现问题。

当更新某个依赖时,可以使用 composer update

composer update topthink/think-queue=2.*

3. composer require

composer require 用于引入新的扩展包, 并且会生成新的 composer.lock 文件

 

标签:依赖,install,lock,require,update,json,composer
From: https://www.cnblogs.com/wjs2019/p/18247472

相关文章

  • 【RSMamba安装】pip install causal-conv1d和pip install mamba-ssm解决方法[亲测有效
    问题描述:在安装Mamba的过程中,我们会根据教程安装依赖项:pipinstallcausal-conv1d和pipinstallmamba-ssm,在绝大多数情况下,都会报错以下内容:error:subprocess-exited-with-errorerror:metadata-generation-failed❌Encounterederrorwhilegeneratingpackagem......
  • typescript Omit Required Pick Partial等常用工具类型使用
    示例代码interfacemybasic{one:string,two:string,three:number,four:string}console.log("myts-demo")//排除参数属性interfacemy1extendsOmit<mybasic,'one'>{}typemytype=keyofmy1;typemytype2=my1;//......
  • nodejs下载依赖npm install报错
    npminstall报错,解决记录_npmwarnusing--forcerecommendedprotectionsdis-CSDN博客先切换镜像源,然后清理缓存,在使用npm命令注意前面可能爆粗哦的原因大概率是权限问题,所以采用这种解决方式加上面合体:解决:安装vueCLI不成功时,执行npmcleancache-force清除缓存命令无效_n......
  • dlib安装问题:ERROR: Could not build wheels for dlib, which is required to install
      #问题安装报错。 >pipinstalldlibDefaultingtouserinstallationbecausenormalsite-packagesisnotwriteableCollectingdlibDownloadingdlib-19.24.4.tar.gz(3.3MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━......
  • 【CMake系列】09-cmake install 一般文件 文件夹 代码文件
    上一节,我们学习了项目构建后、目标的安装,本节学习的内容是对于一般文件,文件夹以及源代码的安装本节的文件依然使用file(WRITExxx.xx)来创建,不依赖额外的文件本专栏的实践代码全部放在github上,欢迎star!!!如有问题,欢迎留言、或加群【392784757】交流文件安装CMakeLi......
  • anaconda环境 使用PyInstaller打包,运行exe文件出现导入_ssl错误
    使用PyInstaller打包后运行exe文件出现错误NameError:name'ssl'isnotdefined。观察PyInstaller打包程序输出,发现找不到DLL文件的警报,查看对应环境下的DLLs文件夹发现导入ssl的DLL文件缺失。查阅资料发现由于anaconda环境DLL文件错误存放在lib文件夹下面,致使PyInstaller打包......
  • 【已解决】Python报错 ERROR: Could not find a version that satisfies the requirem
    本文摘要:本文已解决ERROR:Couldnotfindaversionthatsatisfiestherequirement的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。......
  • Revit二次开发-使用Advanced Installer打包插件安装包
    插件开发属于客户端开发,当我们交付产品给客户的时候,肯定用安装包的形式交付是最佳方案。所以我摸索了一下怎么用AdvancedInstaller来打包插件安装包。AdvancedInstaller简介AdvancedInstaller是一款功能强大且用户友好的Windows安装包制作工具,专门用于创建安装包(MSI、EX......
  • yum install msmtp -y
    1stepyuminstallmsmtp-y2step#cat ~/.msmtprc#Setdefaultvaluesforallfollowingaccounts.defaultsauthontlsontls_starttlson#tls_trust_file/etc/ssl/certs/ca-certificates.crttls_trust_file/etc/ssl/certs/ca-bundle.crt......
  • 分析webpack编译结果, 实现__webpack_require__函数
    分析webpack编译结果,实现__webpack_require__函数本篇文章我们通过手写来分析一下Webpack打包后的代码,并研究一下Webpack是如何将多个模块合并在一起的首先控制台输入npminit-y初始化一个项目,再输入npmiwebpackwebpack-cli-D安装Webpack在src目录想创建入......