Composer安装本地mycomp/livesearch包报minimum-stability匹配失败
报错原因
这个稳定性报错触发逻辑很明确:
- 本地通过path仓库引入的开发包没有打正式版本标签,Composer默认将其识别为
dev-master开发版本,而Laravel项目默认的minimum-stability配置为stable,无特殊约束的情况下不允许直接安装开发版包 - 你的扩展包中声明的依赖
livewire/livewire:dev-master本身也是开发版本,同样会触发稳定性校验规则
解决方法
三种方案选一个就行,本地开发优先选前两种,效率更高:
临时指定版本约束安装
不需要改任何配置,直接执行带稳定性约束的安装命令即可,适合快速本地调试:composer require mycomp/livesearch:@dev其中
@dev的作用是单独给这个包放开稳定性限制,不受全局minimum-stability规则约束。调整全局稳定性配置
打开项目根目录的composer.json,新增/修改两个配置项:{ "minimum-stability": "dev", "prefer-stable": true }配置后全局允许安装开发版包,
prefer-stable: true会保证其他第三方依赖仍然优先选择稳定版本,不会把所有依赖都拉成dev版。改完直接执行正常安装命令即可:composer require mycomp/livesearch给本地包打稳定版本标签
如果要完全符合稳定版校验规则,进入扩展包所在目录packages/mycomp/livesearch,给本地代码打git版本标签:# 如果目录还没初始化git仓库,先执行提交 git init git add . git commit -m "init livesearch package" # 打1.0.0正式版本标签 git tag 1.0.0打完标签Composer会自动识别该包为1.0.0稳定版本,直接正常require即可。注意用这个方案的话,需要把扩展包内
livewire/livewire的版本约束从dev-master改成对应的正式稳定版本号,否则还是会因为livewire的开发版本触发同样的报错。
内容的提问来源于stack exchange,提问作者Constant
相关产品推荐
相关产品推荐

