如何在 Composer 脚本中引用 vendor/bin 里的可执行文件?

admin 百科 13
最稳妥的方式是使用相对路径 ./vendor/bin/xxx,因为 vendor/bin 不一定在系统 $PATH 中,尤其在 CI 环境下易报“command not found”;该写法跨平台兼容且无需判断系统类型。

如何在 Composer 脚本中引用 vendor/bin 里的可执行文件?-第1张图片-佛山资讯网

在 Composer 脚本中直接调用 vendor/bin 下的可执行文件,最稳妥的方式是使用相对路径 ./vendor/bin/xxx(注意开头的 ./),而不是裸命令名。

为什么不能直接写命令名?

Composer 执行脚本时,vendor/bin 不一定在系统 $PATH 中,尤其在 CI 环境或非交互式 shell 下。省略路径会导致“command not found”错误。

正确写法:用 ./vendor/bin/xxx

composer.jsonscripts 字段中,始终以 ./vendor/bin/ 开头:

  • "phpcs": "./vendor/bin/phpcs --standard=PSR12 src/"
  • "phpstan": "./vendor/bin/phpstan analyse src/ --level=max"
  • "pest": "./vendor/bin/pest --parallel"

跨平台兼容性小提示

Windows 下 vendor/bin 里通常是 `.bat` 或 `.cmd` 文件(如 `phpunit.bat`),而类 Unix 系统是 shell 脚本。用 ./vendor/bin/xxx 写法,Composer 会自动匹配对应可执行文件,无需额外判断系统。

标签: 可执行文件 php js json composer windows 编码 unix win 为什么

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~