我们有运行composer install -n --ignore-platform-reqs --no-dev
的圈子构建,但这不再忽视平台要求。
这就是我在圈子日志中看到的。 --ignore-platform-reqs
显然不起作用。有什么想法吗?
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for drupal/core 8.6.13 -> satisfiable by drupal/core[8.6.13].
- drupal/core 8.6.13 requires ext-pdo * -> the requested PHP extension pdo is missing from your system.
Problem 2
- typo3/phar-stream-wrapper v2.1.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
- typo3/phar-stream-wrapper v2.1.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
- Installation request for typo3/phar-stream-wrapper v2.1.0 -> satisfiable by typo3/phar-stream-wrapper[v2.1.0].
而不是使用--ignore-platform-reqs
或provide
hack,最好使用platform
设置模仿你的环境 - 它让你更多地控制平台要求,它比provide
更直观(你的包没有真正提供ext-fileinfo
):
"config": {
"platform": {
"php": "7.2.14",
"ext-fileinfo": "1.0.5",
"ext-pdo": "7.2.14",
"ext-session": "7.2.14",
"ext-iconv": "7.2.14",
"ext-zip": "1.15.4"
}
},
通过在生产环境中调用此命令可以找到的扩展的实际版本(尽管您可能会为扩展版本添加任何内容 - 除了*
作为PHP扩展的约束之外,使用任何东西都是非常罕见的):
composer show -p
我将回答我自己的问题,以防万一有人在这里绊倒。在我的composer.json
文件中添加提供扩展列表解决了我的问题。这个--ignore-platform-reqs
没有效果。
"provide": {
"ext-fileinfo": "*",
"ext-pdo": "*",
"ext-session": "*",
"ext-iconv": "*",
"ext-zip": "*"
}