如何处理 composer warning: TYPO3 Extension package ... does not define extension key in composer.json

How to deal with composer warning: TYPO3 Extension package ... does not define extension key in composer.json

现在在几个 Composer 命令上收到一堆这样的警告。

作曲家转储自动加载

TYPO3 Extension Package "bk2k/bootstrap-package", does not define extension key in composer.json.
Specifying the extension key will be mandatory in future versions of TYPO3 (see: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ComposerJson/Index.html#extra)
TYPO3 Extension Package "typo3/cms-introduction", does not define extension key in composer.json.
Specifying the extension key will be mandatory in future versions of TYPO3 (see: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ComposerJson/Index.html#extra)

显而易见的解决方法是在每个扩展的“额外”部分定义扩展密钥,如 https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ComposerJson/Index.html#extra

中所述

我可以(已经)为自己的扩展做到这一点。

我还可以为其他扩展创建 PR(我已经开始这样做了)。

但对于其他第三方扩展,我不确定它们是否仍会接受支持 TYPO3 9 的最新版本的更改(有些具有支持 10 及更高版本的最新版本)。

警告开始变得烦人,因为它出现了多次。


更新:一些链接:

您可以使用 composer req typo3/cms-composer-installers:3.0.1 加载旧版本而无需检查。

行为是在 typo3/cms-composer-installers v3.1.0 中引入的。

该领域正在进行一些改进,因此这个问题可能很快就会过时。参见:

https://github.com/TYPO3/CmsComposerInstallers/issues/114

如果您等不及了,降级到 v3.0.1 可能是一个快速的解决方案:

composer require typo3/cms-composer-installers '~3.0.1'

一个额外的提示:如果您有通过 composer 加载的本地扩展,并且您按照文档添加 extension-key 并且没有看到针对此扩展的警告消失,则问题可能来自 composer 的缓存。尝试删除它:

test -d "$(composer config vendor-dir)" && rm -rf $(composer config vendor-dir)
composer clear-cache