composer show 命令不支持直接打开 README,仅显示包元信息;README 通常位于 vendor/vendor-name/package-name/ 下,文件名常见为 README.md、README 或 readme.md,需手动定位后用 open、xdg-open 或 Invoke-Item 打开。

composer show 命令本身不支持直接打开 README
它只显示包的元信息(版本、描述、依赖等),composer show vendor/package 输出里根本没有 README 路径或内容。想本地看文档,得自己定位文件再用终端命令打开。
README 通常在 vendor/ 目录下对应包的根目录
Composer 安装后,每个包都解压到 vendor/vendor-name/package-name/,而 README 文件名常见为 README.md、README 或 readme.md(大小写敏感,Linux/macOS 下尤其要注意)。
- 先确认包是否已安装:
composer show vendor/package—— 如果报错“Package not found”,说明没装或拼写错了 - 进 vendor 目录手动查:
ls -F vendor/vendor-name/package-name/ | grep -i readme - 常见路径示例:
vendor/guzzlehttp/guzzle/README.md、vendor/laravel/framework/README.md - Windows 用户注意:CMD 不识别
open,改用start;WSL 用户需确保已配置好 GUI 支持
一行命令快速打开 README(macOS/Linux)
把路径拼出来 + open 或 xdg-open 就行,不用记完整路径:
open "$(composer show -s vendor/package | head -n1 | sed 's/.*at //')/README.md"
但这个命令有坑:
-
composer show -s输出的是源码路径(即vendor/xxx),但不是所有包都带-s选项支持——Composer 2.5+ 才稳定返回,旧版可能为空 - 如果 README 是
readme或README(无后缀),上面命令会失败 - 更稳妥的做法是写个 shell 函数,比如加到
~/.zshrc:
alias c-readme='function _c_readme() { local p=$(echo $1 | sed "s|/|\/|g"); cd vendor/$p && ls -1 README* readme* 2>/dev/null | head -n1 | xargs -r open; }; _c_readme'然后运行:c-readme guzzlehttp/guzzle
Windows PowerShell 快速方案
PowerShell 没有内置 open,但可以用 Invoke-Item(等效于双击):
- 先跳转:
cd vendor\vendor-name\package-name - 再打开:
Invoke-Item (Get-ChildItem README*,readme* | Select-Object -First 1) - 或者合并成一行:
cd vendor\vendor-name\package-name; Invoke-Item (ls README*,readme* | select -f 1) - 注意反斜杠路径和大小写——PowerShell 在 Windows 上对大小写不敏感,但 WSL 或 Git Bash 下仍要小心
真正麻烦的不是命令本身,而是 README 文件名没有统一规范,加上 vendor 目录权限、符号链接、软链包(如 composer link)这些情况,会导致路径解析失败。最省事的方式其实是:装个 IDE(如 PHPStorm),右键包名 → “Open in Explorer”,再点 README —— 比记命令可靠得多。










