Composer怎么设置Vendor二进制路径 修改bin-dir配置详解【方法】
发布时间 - 2026-02-01 00:00:00 点击率:次bin-dir 是 Composer 存放可执行脚本的目录,默认为 vendor/bin;修改它可统一命令路径、适配部署或避免冲突,需通过项目 composer.json 或全局 config 设置,且改后须重装依赖才生效。
Composer 的 bin-dir 是什么,改它有什么用
bin-dir 是 Composer 用来存放可执行脚本(vendor bin scripts)的目录,默认是 vendor/bin。比如你运行 composer require phpunit/phpunit,它会把 phpunit 命令软链或复制到这个目录下。改它,主要是为了统一管理命令路径、适配部署规范,或者避免和项目其他 bin 冲突。
怎么修改 bin-dir 配置
有两种方式,优先级从高到低:
- 项目
级:在项目根目录的
composer.json中添加:"config": { "bin-dir": "scripts" } - 全局级:运行命令设置(影响当前用户所有项目):
composer config --global bin-dir ~/bin
注意:--global 设置后,若项目 composer.json 里也定义了 bin-dir,则以项目配置为准 —— Composer 总是优先读取本地配置。
改完 bin-dir 后常见问题
改完不生效?大概率是没重装依赖:
- 必须运行
composer install或composer update,才能让 Composer 重新生成软链接 - 如果之前已安装过包,旧的
vendor/bin/xxx不会自动删除,得手动清理或rm -rf vendor后重装 - 某些工具(如 IDE、CI 脚本)可能硬编码了
vendor/bin路径,需要同步更新 - Windows 下若设为绝对路径(如
C:\tools\bin),要确保路径存在且有写权限;否则 Composer 会静默失败,不报错但也不生成链接
bin-dir 路径写相对还是绝对
推荐始终用相对路径(如 bin 或 .bin),原因很实际:
- 相对路径会被解析为相对于项目根目录,跨环境一致
- 绝对路径在 CI/CD 或不同开发者机器上容易失效
- Composer 官方文档明确说明:只有相对路径被保证兼容;绝对路径行为未定义,不同版本可能表现不一
例如写成 "bin-dir": "bin",最终就是 ./bin;写成 "bin-dir": "/tmp/bin",很可能在下次 composer install 时被忽略或报错。
# php
# js
# json
# composer
# windows
# 编码
# 工具
# win
# 常见问题
# require
# ide
# 重装
# 报错
# 可执行
# 设为
# 能让
# 但也
# 很可能
# 会把
# 有两种
# 相对于
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
高防服务器如何保障网站安全无虞?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
原生JS实现图片轮播切换效果
EditPlus 正则表达式 实战(3)
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Python进程池调度策略_任务分发说明【指导】
如何选择可靠的免备案建站服务器?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何在云主机上快速搭建网站?
javascript基本数据类型及类型检测常用方法小结
bing浏览器学术搜索入口_bing学术文献检索地址
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
如何快速搭建FTP站点实现文件共享?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
,南京靠谱的征婚网站?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
JavaScript如何实现音频处理_Web Audio API如何工作?
JavaScript如何实现错误处理_try...catch如何捕获异常?
如何快速重置建站主机并恢复默认配置?
使用spring连接及操作mongodb3.0实例
高端建站如何打造兼具美学与转化的品牌官网?
如何快速生成高效建站系统源代码?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
重庆市网站制作公司,重庆招聘网站哪个好?
教学论文网站制作软件有哪些,写论文用什么软件
?
如何在万网自助建站平台快速创建网站?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
如何构建满足综合性能需求的优质建站方案?
JavaScript如何实现倒计时_时间函数如何精确控制
如何在云主机快速搭建网站站点?
微信h5制作网站有哪些,免费微信H5页面制作工具?
Laravel怎么判断请求类型_Laravel Request isMethod用法
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
如何在Windows服务器上快速搭建网站?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
js实现点击每个li节点,都弹出其文本值及修改
java ZXing生成二维码及条码实例分享
如何在不使用负向后查找的情况下匹配特定条件前的换行符


