Composer怎么查看最近安装的包_Composer日志记录查询方法【常用】

1次阅读

composer show 无法查“最近安装”,它只显示当前 vendor/ 和 composer.lock 的快照;可靠方法只有 git diff composer.lock 或查看 shell 历史。

Composer怎么查看最近安装的包_Composer日志记录查询方法【常用】

composer show 不能查“最近安装”,它只反映当前状态

很多人以为 composer show 能看到“刚装的包”或“安装时间”,其实它只是读取 vendor/ 目录和 composer.lock 的当前快照,不记录任何时间戳或操作历史。你运行 composer installcomposer require foo/bar 后,composer show 显示的仍是最终结果,而非变更过程。

  • composer show 输出的是“现在有什么”,不是“刚才装了什么”
  • Composer 本身不维护安装日志文件(如 install.log),也不写入系统日志
  • 如果你没手动记日志、没开 shell 历史记录,就无法回溯“上一条 composer 命令是什么”

查“最近装了啥”的真实可行办法:看 composer.lock 变更

Composer 的真实安装行为都固化在 composer.lock 里——每次成功执行 composer installcomposer update,这个文件都会被重写。所以“最近装了哪些包”,本质是比对两次 composer.lock 的差异。

  • git diff composer.lock(如果你用 Git 管理项目)能立刻看出新增、升级或移除的包及其版本
  • 若没 Git,可提前备份:执行 cp composer.lock composer.lock.before,再运行 composer require xxx,最后用 diff composer.lock.before composer.lock
  • composer.lock 中的 packagespackages-dev 区块列出了所有已安装包;新增条目即为“最近安装”

临时补救:从 shell 历史里捞命令

如果刚执行完安装但忘了记,最快的办法是翻终端命令历史——Composer 没日志,但你的 shell 有。

  • linux/macOS:运行 history | grep composer 或直接按 键往上翻
  • windows PowerShell:用 Get-History | Where-Object { $_.CommandLine -match "composer" }
  • 注意:composer require 会同时修改 composer.jsoncomposer.lock,而 composer install 只读 composer.lock,两者行为不同,别混淆

想自动记录?得自己加钩子

Composer 不提供原生安装日志功能,但可通过脚本+事件钩子实现简易记录。

  • composer.jsonscripts 里加一条: "post-update-cmd": "date >> composer-install.log && echo 'update' >> composer-install.log"
  • 配合 post-require-cmd 钩子,可以 echo 包名到日志(需写简单 shell 脚本)
  • 注意:钩子只在当前项目生效,且不会捕获 composer global require 这类全局操作

真正要查“最近装了啥”,别指望 composer show 或某个隐藏命令——它根本不存在。可靠路径只有两条:看 composer.lockgit diff,或者翻 shell 历史。其他所谓“日志插件”或第三方工具,底层也都是在做这两件事的封装

text=ZqhQzanResources