Daw*_*usi 143 php composer-php
composer update
和之间有什么区别composer install
?
Mop*_*ppo 255
作曲家更新
composer update
将按照指定更新您的依赖性 composer.json
例如,如果您需要此包作为依赖项:
"mockery/mockery": "0.9.*",
Run Code Online (Sandbox Code Playgroud)
并且您实际上已经安装了0.9.1
该软件包的版本,运行composer update
将导致此软件包的升级(例如0.9.2
,如果它已经发布)
详细说明composer update
:
composer.json
composer.json
composer.lock
以存储已安装的软件包版本作曲家安装
composer install
不会更新任何东西; 它只会安装composer.lock
文件中指定的所有依赖项
详细地:
composer.lock
文件是否存在(如果不存在,运行composer-update
并创建它)composer.lock
文件composer.lock
文件中指定的包何时安装以及何时更新
composer update
主要用于"开发阶段",根据我们在composer.json
文件中指定的内容升级项目包,
composer install
主要用于"部署阶段",使用存储在composer update创建的composer.lock文件中的相同依赖项,在生产服务器或测试环境中安装我们的应用程序.
Tim*_*han 53
当你运行composer install时,它会查找一个锁文件并安装其中包含的内容,如果它找不到它会读取composer.json,安装它的依赖项并生成一个lockfile.
当你运行composer update时,它只需读取composer.json,安装依赖项并更新lockfile(或创建一个新的lockfile).
ken*_*orb 18
composer install
composer.lock
确实存在.
composer.lock
文件中的依赖项.composer.lock
确实不存在.
composer.json
.composer.lock
根据安装的包创建文件.按照composer help install
:
install命令
composer.lock
从当前目录读取文件,对其进行处理,并下载并安装该文件中列出的所有库和依赖项.如果文件不存在,它将查找composer.json
并执行相同的操作.
composer update
composer.json
文件中的依赖项(安装,更新和删除).composer.lock
根据更改创建或更新文件.按照composer help update
:
update命令
composer.json
从当前目录读取文件,对其进行处理,并更新,删除或安装所有依赖项.
另请参阅:Composer:关于锁定文件的全部内容
Pha*_*inh 12
if(composer.lock existed){
installs dependency with EXACT version in composer.lock file
} else {
installs dependency with LATEST version in composer.json
generate the composer.lock file
}
Run Code Online (Sandbox Code Playgroud)
composer update = remove composer.lock -> composer install
Run Code Online (Sandbox Code Playgroud)
为什么我们需要 2 个命令。我觉得可以用composer.lock来解释。
想象一下,我们在 中没有和,存在依赖关系或。
那么,就会有一些情况 composer.lock
composer.json
"monolog/monolog": "1.0.*"
"monolog/monolog": "^1.0"
composer install
如果另一个团队成员在不同的时间运行,则他们可能具有不同的依赖项版本。如果我们总是使用精确版本,composer.json
例如"monolog/monolog": "1.0.1"
:
我们仍然需要composer.lock
因为composer.json
只能跟踪依赖项的主版本,它无法跟踪依赖项的依赖项版本。
如果依赖项的所有依赖项也使用 EXACT 版本怎么办?
想象一下,您从使用确切版本的所有依赖项开始,然后您不关心composer.lock
. 但是,几个月后,您添加了新的依赖项(或更新旧的依赖项),并且此依赖项的依赖项不使用 EXACT 版本。那么还是关心一下比较好composer.lock
一开始就照顾好。
除此之外,语义版本比精确版本还有一个优点。我们在开发过程中可能会多次更新依赖项,并且库经常会有一些小的变化,例如错误修复。那么使用语义版本升级依赖就更容易了。
composer update
和之间的最佳区别composer install
作曲家安装
要添加依赖项,您需要手动将其添加到composer.json 文件中。
如果composer.lock文件存在,请准确安装该文件中指定的内容
不会使用此命令更新任何组件。
作曲家更新
要添加或删除依赖项,您需要手动将其添加到composer.json文件中
如果您不能(或者不知道如何添加或删除库,这实际上很简单,只需在文件的 require 属性中添加依赖项的名称和版本)手动修改composer.json 文件,或者您更喜欢使用命令行,composer 为此提供了特殊的功能:
作曲家要求
例如,如果我们想使用命令行添加依赖项,我们只需执行
composer require twig/twig
作曲家删除
如果您想删除未使用的依赖项,我们将简单地执行:
composer remove twig/twig --update-with-dependencies