如何排查Drupal 10中Composer的InvalidArgumentException错误
我是一名初学者,在Hostinger虚拟主机上搭建了Drupal 10.0.7项目且已安装Composer。尝试通过Composer安装任何模块时,均出现以下错误:
[InvalidArgumentException]
Could not find a matching version of package drupal/pathauto. Check the package spelling, your version constraint and that the package is available in a stability which matches your minimum-stability (stable).
已尝试的排查步骤
- 确认Composer JSON和LOCK文件均存在;
- 将composer.json中
"minimum-stability"从"stable"改为"dev"; - 移除安装命令中包名的单引号,尝试使用多个
^符号; - 尝试安装不同模块,仍得到相同错误。
我的composer.json部分内容
"name": "drupal/legacy-project", "description": "Project template for Drupal projects with composer following drupal/drupal layout", "type": "project", "license": "GPL-2.0-or-later", "homepage": "https://www.drupal.org/project/drupal", "support": { "docs": "https://www.drupal.org/docs/user_guide/en/index.html", "chat": "https://www.drupal.org/node/314178" }, "repositories": [ { "type": "composer", "url": "https://packages.drupal.org/8" } ], "require": { "composer/installers": "^2.0", "drupal/core-composer-scaffold": "^10.0", "drupal/core-project-message": "^10.0", "drupal/core-recommended": "^10.0", "drupal/core-vendor-hardening": "^10.0" }, "conflict": { "drupal/drupal": "*" }, "minimum-stability": "dev", "prefer-stable": true, "config": { "allow-plugins": { "composer/installers": true, "drupal/core-composer-scaffold": true, "drupal/core-project-message": true, "drupal/core-vendor-hardening": true, "phpstan/extension-installer": true, "dealerdirect/phpcodesniffer-composer-installer": true }, "sort-packages": true }, "extra": { "drupal-scaffold": { "locations": { "web-root": "./"
排查建议
修复Drupal Composer仓库地址
当前repositories里的地址是https://packages.drupal.org/8,这是旧的Drupal 8仓库,Drupal 10需使用https://packages.drupal.org/10。修改后运行composer clear-cache清理缓存,再尝试安装。明确指定模块版本约束
安装模块时直接指定兼容Drupal 10的版本,比如安装pathauto用composer require 'drupal/pathauto:^1.12'(pathauto 1.12+支持Drupal 10),避免Composer自动匹配时出现版本不兼容问题。验证Hostinger的Composer源配置
Hostinger虚拟主机可能存在默认镜像限制,运行composer config -g repo.packagist composer https://packagist.org切换到官方源,再执行composer clear-cache清理本地缓存。补全composer.json的不完整配置
你提供的extra部分代码未闭合,需补充完整的JSON结构,比如在末尾添加:} } }不完整的JSON会导致Composer解析失败,无法正常读取配置。
更新核心依赖后重试
运行composer update drupal/core-recommended --with-dependencies更新核心依赖,确保项目依赖状态正常,再尝试安装模块。
内容的提问来源于stack exchange,提问作者raddy

