#php #module #drupal-8
#php #модуль #drupal-8
Вопрос:
Я попытался установить модуль Drupal с помощью composer по определенному пути,
Я проверяю эти ссылки, но не могу этого понять.
Пожалуйста, проверьте это и скажите мне, что не так и что я должен делать?
Чего я хочу?
Установите модуль поля подписи в
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
, но модуль не переносится в нужную мне папку
Ответ №1:
Может быть, это могло бы помочь (примечание о extra
):
{
"extra": {
"installer-paths": {
"modules/patched/{$name}": ["drupal/signature_field"],
"modules/patched/{$name}": ["another/package"]
}
}
}
Вероятно, это сработало бы:
{
"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"]
}
}
}
Также,
Вы не можете использовать это для изменения пути к какому-либо пакету. Это применимо только к пакетам, для которых требуются композиторы / установщики и которые используют пользовательский тип, который он обрабатывает.
Вы также можете сгруппировать свои пакеты по type
:
{
"extra": {
"installer-paths": {
"your/custom/path/{$name}/": ["type:wordpress-plugin"]
}
}
}
или определенные vendor
:
{
"extra": {
"installer-paths": {
"your/custom/path/{$name}/": ["vendor:drupal"]
}
}
}
Комментарии:
1. Это работает, но как насчет того, когда у меня есть пара модулей с этим случаем, как я должен добавить?
2. Вы имеете в виду, что хотите добавить более одного модуля в один и тот же путь?
3. в этом случае композитором будет применен только первый, любой другой в следующем будет проигнорирован, в данном случае только поле подписи
4. Вы пробовали создавать отдельные
extra
поля для каждого пакета, который вам нужно установить в определенный каталог?5. это неправильно, что я добавляю по одному дополнительному для каждого пакета, возможно, существует 100 пакетов, в которые должно быть добавлено не менее 200 дополнительных строк кода.
Ответ №2:
там мы должны определить пользовательский путь и определить, какой модуль или пакет следует установить по этому пути.
вот так
"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",
}