Composer install按lock文件安装依赖,确保环境一致;Composer update根据json文件更新依赖至最新兼容版本,用于升级。前者用于生产与协作,后者需谨慎在开发环境使用。

Composer install 和 Composer update 都是 Composer 常用命令,但它们的用途和行为有本质区别,理解清楚能避免项目依赖混乱。
Composer install:按 lock 文件安装依赖
这个命令的核心是遵循 composer.lock 文件来安装依赖。
- 如果项目中已有 composer.lock 文件,Composer 会严格按照其中记录的版本号安装包,确保所有开发者使用完全相同的依赖版本。
- 如果不存在 composer.lock(比如新项目第一次运行),Composer 会读取 composer.json,解析最新兼容版本,下载对应包,并生成新的 composer.lock 文件。
- 适合在生产环境或团队协作时使用,保证环境一致性。
Composer update:更新依赖到最新兼容版本
这个命令会忽略当前 composer.lock 文件,重新根据 composer.json 中的版本约束,查找并安装符合要求的最新版本。
- 执行后会更新所有符合条件的依赖到最新版,并刷新 composer.lock 文件。
- 通常在你希望升级项目依赖(比如修复安全漏洞、获取新功能)时使用。
- 风险较高,可能引入不兼容变更,建议在开发环境中测试后再提交新的 lock 文件。
实际使用场景对比
举个例子帮助理解:
- 你 clone 一个别人写的 PHP 项目,应该运行 composer install,这样你会得到和原作者一样的依赖组合,减少出错可能。
- 你在本地开发,发现某个库发布了重要补丁,想升级它,就可以运行 composer update(或更精确地用 composer update vendor/package 只更新特定包)。
- CI/CD 流水线或部署服务器上,一般只运行 composer install --no-dev,不触发版本解析,快速且稳定。
基本上就这些。简单记:install 是“照着清单装”,update 是“检查有没有新版并升级”。用对场景,能有效避免依赖冲突。










