改 bin-dir 后需删 vendor 并重装,再手动添加 path 才生效;bin-dir 仅影响新安装包,对已有 vendor 无作用,且路径须为相对路径,windows 需调用 .bat 文件。

改 bin-dir 不等于命令立刻可用,必须删 vendor 重装 + 手动加 PATH,否则新目录永远空着、终端也找不到命令。
composer.json 里设 bin-dir 后没生成文件?
这是最常被误判的点:配置写对了,composer install 也跑了,但自定义目录(比如 bin 或 scripts)还是空的——根本原因是 bin-dir 只影响「新安装或更新」的包,对已存在的 vendor/ 完全无感。
- 必须先运行
composer clear-cache清掉缓存干扰 - 手动删掉整个
vendor/目录(不能只删vendor/bin) - 再执行
composer install,这时才会按新bin-dir创建目录并生成符号链接(Linux/macOS)或.bat(Windows) - 路径必须是相对路径,如
"bin"、"tools",不能以/开头,也不能写./bin或绝对路径,否则会报错Invalid bin-dir path
为什么终端敲 phpunit 还是提示 command not found?
bin-dir 只管“放哪”,不管“怎么调用”。系统找不到命令,99% 是因为 $PATH 没包含你的新目录。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 临时解决(当前终端有效):
Linux/macOS:export PATH="$(pwd)/bin:$PATH"
Windows CMD:set PATH=%cd%\bin;%PATH% - 长期生效要写进 shell 配置(如
~/.zshrc),但协作项目中别用$(pwd)这种动态路径——别人 clone 下来就失效;更稳妥的是用绝对路径,例如export PATH="/home/user/myproject/bin:$PATH" - CI 场景建议直接用完整路径调用,如
./bin/phpunit --testdox,避免依赖PATH - IDE(如 PHPStorm、VS Code)启动时可能没读你的
PATH修改,需重启 IDE 或单独配环境变量
Windows 下 bin-dir 生效但命令仍跑不起来?
Windows 没有可靠的符号链接支持,Composer 默认生成的是 .bat 包装脚本(如 bin/phpunit.bat),不是可执行文件本身。
- 你不能直接敲
phpunit,得敲phpunit.bat,除非把.BAT加进系统环境变量PATHEXT - 某些防病毒软件会拦截
.bat文件生成,导致静默失败;可临时禁用杀软再试 - 脚本第一行的 shebang(如
#!/usr/bin/env php)在 Windows 上无效,真正起作用的是.bat里写的 PHP 路径 - 路径中含空格或中文会导致生成失败,务必用纯英文、无空格的目录名,如
"tools",不要写"my tools"或"测试工具"
最容易被忽略的一点:项目级 bin-dir 配置优先级高于全局,但它不会自动迁移旧文件,也不会改环境变量——它只决定新依赖的链接落点。删 vendor 和配 PATH 这两步缺一不可,少做一步,就白改了。










