Composer安装自定义包innovareti/password-policy版本匹配报错求助
问题解决:Composer无法找到匹配minimum-stability(dev)的包版本
核心原因
你发布的包带有正式稳定版本标签,但本地项目的minimum-stability设为dev时,Composer默认优先查找dev分支版本,而你的包未公开对应dev分支版本(或Packagist未同步),因此出现版本匹配失败的错误。
解决方案
1. 显式指定版本安装
直接在require命令中添加包的稳定版本号(比如你发布的v1.0.0):
composer require innovareti/password-policy:^1.0.0
若需明确指定稳定性约束,可追加@stable:
composer require innovareti/password-policy:^1.0.0@stable
2. 调整本地项目的Composer配置
修改项目根目录的composer.json,添加prefer-stable配置,让Composer在minimum-stability为dev时优先选择稳定版本:
{ "minimum-stability": "dev", "prefer-stable": true }
修改后执行composer update刷新配置,再重新执行require命令即可。
3. 确认Packagist同步状态
登录Packagist的包页面,手动点击「Update」按钮触发重新同步GitHub标签,确保所有发布的版本都被正确识别。
额外建议:修正包的composer.json语法问题
你的包的autoload配置中,反斜杠未按JSON规则转义(需用双反斜杠),虽然不影响安装,但会导致后续自动加载失败,建议修正为:
"autoload": { "psr-4": { "PasswordPolicy\\Tests": "tests/", "PasswordPolicy": "src/PasswordPolicy/", "PasswordPolicy\\Database\\Factories": "database/factories", "PasswordPolicy\\Models": "src/Models" } },
内容的提问来源于stack exchange,提问作者Sonrimos
相关产品推荐
相关产品推荐

