/ / Come installare le librerie di terze parti in Drupal 8 con Composer che non sono in packagist? - git, drupal, compositore-php, drupal-8

Come installare le librerie di terze parti in Drupal 8 con Composer che non sono in packagist? - git, drupal, compositore-php, drupal-8

Qual è il modo migliore per installare una libreria di terze parti in Drupal 8 che non sia in packagist?

Ad esempio, ho il Modulo Field Color, che può usare il libreria jQuery Simple Color Picker per fornire un'esperienza utente migliore.

La soluzione più ovvia è semplicemente aggiungere la libreria manualmente, ma ciò non è realmente gestibile.

La mia seconda idea era di aggiungere il repository git al mio compositore.json, come mostrato di seguito, ma non funziona perché il repository di destinazione non ha 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"
}

Dovrei semplicemente inserire il repository git e aggiungere lì un file composer.json?

risposte:

3 per risposta № 1

Eri sulla buona strada, nel tuo compositore. Jeff puoi creare i tuoi "pacchetti" per esempio:

"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"
}
}
]

E poi includerlo attraverso

  "jquery/simplecolor": "1.2.1,

0 per risposta № 2

Questa è una patch piuttosto semplice, ma richiede alcuni processi al di fuori del repository affinché funzioni.

Ho creato un esempio di walk-through, che consiste nell'utilizzare la biblioteca solr solarium.

Ecco i passi che ho seguito:

  • Creato un repository github che contiene solo il file drupal composer.json
  • Creato un nuovo pacchetto su packagist.com https://packagist.org/packages/drupal/drupal utilizzando il repository Github come origine
  • Spostati i riferimenti da / core / vendor a / vendor
  • Aggiunto un nuovo compositore.json nella radice del progetto
  • Aggiunto drupal / drupal come dipendenza
  • Aggiunta una nuova biblioteca esterna solarium / solarium come esempio
  • Esegui l'installazione del compositore dalla dir del progetto Ecco cosa è successo: -Composer ha trovato il progetto drupal / drupal e ha scaricato tutte le dipendenze di Drupal in / vendor
  • Ha anche scaricato solarium in / vendor

Ho eseguito un'installazione di Drupal 8 e ho eseguito alcuni test senza problemi.

Ho pubblicato una patch che non dovrebbe essere testata, ma dare un'idea di ciò di cui sto parlando.