web-dev-qa-db-ja.com

composerを使用してベンダーディレクトリにパッチを適用するにはどうすればよいですか?

バックグラウンド:

  • Drupal 8
  • 作成による依存関係の管理

vendor/behat/web_api_extensionプロジェクトに1つのパッチを適用したい。

これをcomposer.jsonで試しましたが、機能しないか、エラーは発生しません。

"extra": {
    "enable-patching": true,
    "patches": {
        "drupal/better_formats": {
           "Settings have no affect on the field if it is in a Paragraph bundle - https://www.drupal.org/node/2754029": "https://www.drupal.org/files/issues/better_formats_paragraphs-2754029-15.patch"
        },
        "vendor/behat/web-api-extension": {
            "behat web api definition conflicts with mink extensions": "patches/behat_web_api/alter-definitions-text.patch"
        }
    }
}
4
Mudassar Ali

composerがextra-> patches行を解析できるようにするには、cweagansベンダーが必要になります。

この行は間違っていると思います:"vendor/behat/web-api-extension"常に相対パスではなく、パッケージ名(バージョンなし)が必要です。あなたの場合、それは"behat/behat"

3
ssibal

プロジェクトの要件としてcweagans/composer-patchesが必要なので、次のことを行う必要があります。

composer require cweagans/composer-patches

次に、composer.jsonで、extra:patchesの下にパッチを追加する必要があります。

...
"extra": {
    "enable-patching": true,
    "patches": {
        "drupal/better_formats": {
           "Settings have no affect on the field if it is in a Paragraph bundle - https://www.drupal.org/node/2754029": "https://www.drupal.org/files/issues/better_formats_paragraphs-2754029-15.patch"
        },
        "vendor/behat/web-api-extension": {
            "behat web api definition conflicts with mink extensions": "patches/behat_web_api/alter-definitions-text.patch"
        }
    }
}
...
0
Duncanmoo