composer install -n --ignore-platform-reqs不忽略PHP扩展

问题描述 投票:1回答:2

我们有运行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].
drupal composer-php circleci
2个回答
2
投票

而不是使用--ignore-platform-reqsprovide 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

0
投票

我将回答我自己的问题,以防万一有人在这里绊倒。在我的composer.json文件中添加提供扩展列表解决了我的问题。这个--ignore-platform-reqs没有效果。

 "provide": {
        "ext-fileinfo": "*",
        "ext-pdo": "*",
        "ext-session": "*",
        "ext-iconv": "*",
        "ext-zip": "*"
    }
© www.soinside.com 2019 - 2024. All rights reserved.