He encontrado dependencias en un módulo personalizado con drupal-composer , ¿cómo puedo incluir una biblioteca de terceros en mi módulo personalizado sin usar Composer Manager y cómo administrar las dependencias del compositor de módulos contrib en drupal 8 que están relacionadas con mi pregunta, pero no? Parece que ya no se aplica desde Drupal 8.1 y la desaprobación del administrador Composer .
También parece que las guías populares como La introducción definitiva a D8 y Composer ya no se aplican, ya que también mencionan el administrador de compositores.
La otra solución opuesta al administrador del compositor, alterar el archivo core composer.json parece demasiado pirateo del núcleo y probablemente se rompería con cada actualización de Drush del núcleo de Drupal (?).
Más específicamente, estoy intentando actualizar Views vCards de Drupal 7 a 8. He creado mi archivo composer.json de la siguiente manera:
{
"name": "drupal/views_vcards",
"description": "Allows creation of vCards using the fields provided by the Views module.",
"type": "drupal-module",
"license": "GPL-2.0+",
"homepage": "https://drupal.org/project/views_vcards",
"require": {
"maennchen/zipstream-php": "0.3.*"
}
}
Pero si pongo un archivo composer.json en la carpeta de mi módulo, ¿cómo hago para que Drupal sepa que ese archivo está allí y cómo me aseguro de que zipstream-php
se descargue la biblioteca requerida ?
Simplemente ejecutar composer update
desde la raíz de Drupal actualiza muchas dependencias de Drupal, pero no incluye los archivos composer.json que están en las carpetas de los módulos. Tampoco asumo que debería llamar composer install
desde todos los módulos con dependencias.
¿Cómo hago para que Drupal esté al tanto de la dependencia de un módulo sin usar el administrador de compositor y / o el núcleo de piratería?
ACTUALIZAR:
El complemento de fusión del compositor utilizado por core parece admitir una ruta comodín:
{
"require": {
"wikimedia/composer-merge-plugin": "dev-master"
},
"extra": {
"merge-plugin": {
"include": [
"composer.local.json",
"extensions/*/composer.json" // < ---- THIS LINE
],
"require": [
"submodule/composer.json"
],
"recurse": true,
"replace": false,
"merge-dev": true,
"merge-extra": false
}
}
}
¿Por qué no se fusiona el núcleo modules/*/composer.json
, eso resolvería todo bien?
Actualización 2:
El razonamiento para no apoyar esto está cubierto en este tema (que también ha estado en silencio durante algún tiempo).
composer.json
archivo es la nueva forma recomendada y se está reemplazando drush para descargar e instalar módulos? Obviamente, el compositor resolverá automáticamente las dependencias anidadas y, de hecho, también descargará mis dependencias.