PhpStorm执行Composer Install报composer-unused插件被allow-plugins拦截
报错原因
- 你执行的全局配置命令存在包名拼写错误:命令里写的是
icanhazstrin,比正确包名icanhazstring/composer-unused少了末尾的g,导致全局配置根本没有正确写入,规则不生效。 - 报错明确拦截的是全局安装的
icanhazstring/composer-unused插件,你在项目composer.json中添加的allow-plugins: true配置仅对当前项目内安装的依赖插件生效,无法约束全局安装的Composer插件,因此项目级配置无法解决这个全局插件的拦截问题。 - 额外排查点:PhpStorm可能使用了和你终端不一致的Composer可执行文件路径,如果你终端配置的是系统全局Composer,但PhpStorm指定了其他位置的composer.phar,也会出现终端配置了但IDE里仍报错的情况。
修复方案
按优先级选择操作即可:
- 执行拼写正确的全局允许命令
如果你使用本地的composer.phar执行操作,运行以下命令(注意包名完整拼写):
如果你配置了系统全局composer命令,也可以直接运行:/etc/php8/bin/php composer.phar global config --no-plugins allow-plugins.icanhazstring/composer-unused true
执行后运行composer global config --no-plugins allow-plugins.icanhazstring/composer-unused truecomposer global config --list校验配置,确认输出中存在allow-plugins.icanhazstring/composer-unused: true条目即为配置成功。 - (可选)移除全局冗余的该插件包
你的项目已经在require-dev中声明了icanhazstring/composer-unused依赖,不需要全局安装也可以在项目内使用。如果不需要全局调用这个工具,可以直接执行命令删除全局安装的包,从根源避免拦截:
删除后项目内安装的该插件会被你之前配置的项目级composer global remove icanhazstring/composer-unusedallow-plugins: true规则自动放行,不会触发报错。 - 校验PhpStorm的Composer配置
打开PhpStorm设置,找到PHP > Composer配置页,确认IDE使用的Composer路径和你终端执行命令用的Composer路径一致。如果IDE指定了其他位置的Composer,需要对应给该路径下的Composer执行上述全局配置命令。 - 所有配置完成后重启PhpStorm,再执行
Composer > Install操作即可正常运行。
内容的提问来源于stack exchange,提问作者ilhan
相关产品推荐
相关产品推荐

