执行 composer update –lock 仅更新 lock 文件而不升级依赖。它根据当前 composer.json 和已安装状态重新生成 composer.lock,适用于同步元数据或修复文件不一致,常用于 CI/CD 或团队协作中确保 lock 文件准确反映实际环境,避免意外版本变更。

执行 composer update –lock 并不会真的更新你的依赖包,它的主要作用是更新 composer.lock 文件中的信息,而不改变已安装的依赖版本。
只刷新 lock 文件,不升级依赖
当你运行这个命令时,Composer 会读取当前 composer.json 和已经安装的依赖状态,然后重新生成 composer.lock 文件。但不会去检查远程是否有新版本,也不会安装或更新任何包。
这在以下情况特别有用:
- 你从别人那里拿到代码,vendor 目录和 composer.lock 可能不同步,但你不想随意升级依赖
- 你想确保 composer.lock 准确反映当前实际安装的状态
- 你在 CI/CD 环境中需要生成一个准确的 lock 文件用于后续部署验证
与常见命令的区别
对比其他常用命令可以更清楚理解其用途:
- composer update:根据 composer.json 检查并升级所有匹配的新版本,同时更新 lock 文件
- composer install:按 lock 文件安装依赖,不进行任何升级
- composer update –lock:不升级包,仅重新写入 lock 文件(基于当前安装状态或 composer.json)
典型使用场景
比如你手动修改了 composer.json 中的描述信息(如项目名称、类型等),虽然这些字段不影响依赖解析,但你想让 lock 文件也同步最新元数据,这时就可以用:
composer update –lock
这样既安全又干净,不会引发意外的依赖变更。
基本上就这些 —— 它是个“静默更新 lock 文件”的工具,适合在需要保持依赖稳定的同时,修正或同步 lock 文件内容的场景。


