新闻中心

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

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

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

在 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 会自动匹配对应可执行文件,无需额外判断系统。

易森网络企业版 易森网络企业版

如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld

易森网络企业版 0 查看详情 易森网络企业版

避免用 bin-dir 变量拼接

虽然 Composer 支持 {$vendor-dir} 等变量,但 bin-dir 没有等效的内置变量可用。硬编码 ./vendor/bin 是最简单可靠的做法——它符合默认配置,且几乎所有项目都未改动该路径。

基本上就这些。不复杂但容易忽略,加个 ./ 就能跑通所有环境。

以上就是如何在 Composer 脚本中引用 vendor/bin 里的可执行文件?的详细内容,更多请关注php中文网其它相关文章!


# 包中  # 宁德网站建设推广费用  # 找建设材料网站  # 化工网站seo优化团队  # 素人护肤品营销推广案例  # 普陀区seo推广  # 推广营销系统介绍语言  # 抖音营销模式及推广策略  # 怎么推广品牌营销书籍呢  # 高速营销推广培训  # 台州移动seo  # 您是  # 就能  # 协同工作  # 情况下  # 可执行文件  # 都是  # 何为  # 镜像  # 如何在  # 为什么  # win  # unix  # 编码  # windows  # composer  # json  # js  # php 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 拼多多赚钱渠道_拼多多收益来源  c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架  快手网页版在线登录 快手网页版官网入口快速访问  怎样更改Windows系统的默认安装路径_避免C盘爆满的终极设置【技巧】  Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】  怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除  AO3最新镜像入口 Archive of Our Own官方平台访问  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践  如何在更新Composer依赖后自动运行测试_使用post-update-cmd钩子触发PHPUnit  快速CSGO开箱网站指南 CSGO开箱平台推荐  微信网页版扫码登录入口 微信网页版二维码登录入口  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  C++指针和引用有什么区别_C++内存管理核心概念深度解析  SteamMachine定价或为699美元 大家想入手吗?  聚水潭ERP登录页面入口 聚水潭ERP官网登录界面  sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE  zookeeper 都有哪些功能?  Linux如何构建多环境配置管理_Linux多环境配置方案  Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址  Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换  HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解  铃兰之剑为这和平的世界希里技能组及加点推荐  Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧  反效果?《战地6》免费试玩开启后玩家数不升反降  深入理解Google Cloud Datastore查询:祖先路径与数据一致性  网易大神怎么保存别人动态的图片_网易大神动态图片保存方法  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  QQ邮箱网页版快速登录 QQ邮箱邮箱账号官方入口地址  Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation  如何在Promise链中优雅地中断后续then执行  c++20的std::jthread是什么_c++可中断线程与RAII式管理  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  微博网页版主页入口 微博官方网站免登录访问  mc.js游戏直达 mc.js网页免下载版本秒进地址  想当下一个《2077》?《心之眼》Steam评价升至"多半好评"  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  Linux如何排查内存不足OOME问题_LinuxOOM分析教程  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  淘宝支付提示失败如何解决 淘宝支付流程优化方法  在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明  HTML元素状态管理:根据DIV内容动态启用/禁用按钮  如何使用纯J*aScript判断Input元素是否在特定类容器内  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件  Go语言HTML解析:利用Goquery精准获取指定元素内容  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  Composer如何解决json扩展缺失的错误 

搜索