¿Cómo instalar bibliotecas de terceros en Drupal 8 con Composer que no están en packagist?

¿Cuál es la mejor manera de instalar una biblioteca de terceros en Drupal 8 que no está en packagist?

Por ejemplo, tengo el module Color Field , que puede usar la biblioteca jQuery Simple Color Picker para proporcionar una mejor experiencia de usuario.

La solución más obvia es simplemente agregar la biblioteca manualmente, pero eso no es realmente sostenible.

Mi segunda idea fue agregar el repository de git a mi composer.json, como se muestra a continuación, pero no funciona porque el repository de destino no tiene un file composer.json.

"repositories": [ { "name": "jquery-simple-color", "type": "git", "url": "https://github.com/recurser/jquery-simple-color.git" } ], "require": { "jquery-simple-color/": "1.2.1" } 

¿Debo simplemente bifurcar el repository git y agregar un file composer.json allí?

Ha estado en el path correcto, en su composer.json puede crear sus propios "packages", por ejemplo:

 "repositories": [ { "type": "package", "package": { "name": "jquery/simplecolor", "version": "1.2.1", "dist": { "url": "https://github.com/recurser/jquery-simple-color/archive/v1.2.1.zip", "type": "zip" }, "type": "drupal-library" } } ] 

Y luego includelo a través

  "jquery/simplecolor": "1.2.1, 

Este es un parche bastante simple, pero requiere algunos processs fuera del repository para que esto funcione.

Creé un ejemplo de recorrido, que consiste en utilizar la biblioteca de solárium de solárium.

Estos son los pasos que seguí:

  • Creó un repository github que solo contiene el file drupal composer.json
  • Creó un nuevo package en packagist.com https://packagist.org/packages/drupal/drupal usando el repository github como fuente
  • Referencias movidas desde / core / vendor a / vendor
  • Se agregó un nuevo composer.json en la raíz del proyecto
  • Se agregó drupal / drupal como dependencia
  • Se agregó una nueva biblioteca externa solarium / solarium como ejemplo
  • Ejecuta la installation del compositor desde el directory del proyecto. Esto es lo que sucedió: -Composer encontró el proyecto drupal / drupal y descargó todas las dependencies de Drupal en / vendor
  • También descargó solarium en / vendor

Ejecuté una installation de Drupal 8 y ejecuté algunas testings sin problema.

He publicado un parche que no debería probarse, pero da una idea de lo que estoy hablando.