Композитор для установки пакета или модуля по произвольному пути? - PullRequest
3 голосов
/ 18 апреля 2019

Я попытался установить модуль Drupal с композитором по определенному пути,

Я проверяю эти ссылки, но не могу понять это.

Пожалуйста, отметьте это и скажите, что не так и что мне делать?

Что я хочу?

Установите полевой модуль Signature в каталог modules/patched.

это часть моего composer.json файла, связанного с этой проблемой.

"require": {
    "composer/installers": "^1.0.24",
    "drupal/signature_field": "^1.0@RC",
},

    "installer-paths": {
        "core": ["type:drupal-core"],
        "modules/contrib/{$name}": ["type:drupal-module"],
        "profiles/contrib/{$name}": ["type:drupal-profile"],
        "themes/contrib/{$name}": ["type:drupal-theme"],
        "drush/contrib/{$name}": ["type:drupal-drush"],
        "modules/custom/{$name}": ["type:drupal-custom-module"],
        "themes/custom/{$name}": ["type:drupal-custom-theme"],
        "modules/patched/{$name}": ["type:drupal-patched-module"]
    },
    "patches": {
        "drupal/signature_field": {
            "Drupal Signature Field fix multi feilds": "modules/patched/signature_field/signature_field-2993223-08.patch"     
        }
    }
},

В конце я делаю composer install и composer update, но модуль не переносится в нужную папку

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

там мы должны определить пользовательский путь и определить, какой модуль или пакет следует установить по этому пути.

вот так

"installer-paths": {

    // custom path with the list of items that should installed there.

    "modules/patched/{$name}": [
        "drupal/signature_field",
        "drupal/eck",
        "drupal/auto_entitylabel"
    ],
}

Пакет или модуль должен находиться в вашем разделе requireа также.

"require": {
        "composer/installers": "^1.0.24",
        "drupal/auto_entitylabel": "2.x-dev",
        "drupal/signature_field": "^1.0@RC",
        "drupal/eck": "^1.0@alpha",
}
1 голос
/ 23 апреля 2019

Может быть, это может помочь (примечание о extra):

{
    "extra": {
        "installer-paths": {
            "modules/patched/{$name}": ["drupal/signature_field"],
            "modules/patched/{$name}": ["another/package"]
        }
    }
}

Ссылка , Комментарий GitHub

Возможно, это 'd работа:

{
    "extra": {
        "installer-paths": {
            "modules/patched/{$name}": ["drupal/signature_field"]
        }
    },
    "extra": {
        "installer-paths": {
            "modules/patched/{$name}": ["drupal/another_module"]
        }
    }
}

или

{
    "extra": {
        "installer-paths": {
            "modules/patched/{$name}": ["drupal/signature_field"]
        },
        "installer-paths": {
            "modules/patched/{$name}": ["drupal/another_module"]
        }
    }
}

Также,

Вы не можете использовать это, чтобы изменить путь любого пакета.Это применимо только к пакетам, которые требуют composer / installers и используют настраиваемый тип, который он обрабатывает.

Вы также можете группировать ваших пакетов по type:

{
    "extra": {
        "installer-paths": {
            "your/custom/path/{$name}/": ["type:wordpress-plugin"]
        }
    }
}

или определенный vendor:

{
    "extra": {
        "installer-paths": {
            "your/custom/path/{$name}/": ["vendor:drupal"]
        }
    }
}
...