使用精确版本号可锁定依赖,如"monolog/monolog": "2.3.5";2. composer.lock 文件确保安装一致版本;3. 避免运行 composer update 或使用 --lock 参数防止升级。

在使用 Composer 管理 PHP 依赖时,如果你希望锁定某个包的版本,防止它在后续执行 composer update 时被更新,有几种有效的方法可以实现。最核心的方式是通过修改 composer.json 文件中的版本约束,并结合 composer.lock 文件的作用来控制。
在 composer.json 的 require 或 require-dev 中,将包的版本写成固定版本号,而不是使用波浪线(~)或插入符(^)等允许小版本或补丁更新的符号。
"monolog/monolog": "^2.0" — 允许更新到 2.x 的最新版"monolog/monolog": "2.3.5" — 只安装 2.3.5 版本这样即使运行 composer update,Composer 也会严格遵守这个版本,不会升级到更高版本。
当你第一次执行 composer install 时,Composer 会根据 composer.json 安装依赖,并生成一个 composer.lock 文件,记录所有已安装包的精确版本。
composer.lock 存在,composer install 就会安装 lock 文件中指定的版本,不会更新。composer update 才会重新解析版本并可能升级。因此,如果你不想让某个包更新,除了在 composer.json 中限制版本外,还可以避免运行 composer update,只使用 composer install 来确保环境一致性。
虽然 Composer 没有直接“冻结”单个包的命令,但你可以通过以下方式间接实现:
composer update vendor/package
composer update --lock:只更新 lock 文件而不升级包(Composer 2.2+ 支持)composer install 而不是 update
基本上就这些。最关键的还是在 composer.json 中使用固定版本号,配合 composer.lock 文件,就能有效锁定包的版本,避免意外升级。不复杂但容易忽略的是版本符号的细微差别,写死版本是最稳妥的做法。
以上就是Composer如何锁定一个包的版本不让它更新?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号