Libraries bei composer.json einbinden
Eingetragen von Kulturmensch (159)
am 01.11.2019 - 09:44 Uhr in
am 01.11.2019 - 09:44 Uhr in
Wie bindet man von Modulen geforderte zusätzliche Libraries in der composer.json ein? Ich habe beispielsweise das Modul Views Slideshow installiert, das die externe JavaScript librariy jquery.cycle.all.js benötigt.
Das hat sehr gut funktioniert. Jetzt wurde mir gestern mitgeteilt, dass es notwendig sei, die zusätzliche Library auch in der composer.json einzubinden.
Dazu ergeben sich zunächst folgende Fragen:
- Wie bindet man die Library ein (Pfad, Notation ...)?
- An welcher Stelle der existierenden composer.json bindet man die Library ein?
- Wie testet man, das man keinen Fehler beim Einbinden gemacht hat?
- Was macht man nach dem Eindbinden? composer update o.ä. ?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hierein Auszug aus meinem
am 01.11.2019 - 14:54 Uhr
Hierein Auszug aus meinem composer.json:
"repositories": [
{
"type": "composer",
"url": "https://packages.drupal.org/8"
},
{
"type": "package",
"package": {
"name": "jackmoore/colorbox",
"version": "1.6.4",
"type": "drupal-library",
"dist":{
"url": "https://github.com/jackmoore/colorbox/archive/master.zip",
"type": "zip"
}
}
}
],
"extra": {
"installer-paths": {
"web/core": ["type:drupal-core"],
"web/libraries/{$name}": ["type:drupal-library"],
"web/modules/contrib/{$name}": ["type:drupal-module"],
"web/profiles/contrib/{$name}": ["type:drupal-profile"],
"web/themes/contrib/{$name}": ["type:drupal-theme"],
"drush/Commands/{$name}": ["type:drupal-drush"]
},
Bei den Repositories habe ich ich die colorbox library als Package eingebunden. Unter extras bei den Installer Paths ist festgelegt, wohin das Package abgelegt wird.
Installiert wird die Colorbox-Library mittels composer require jackmoore/colorbox.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Super! Herzlichen Dank!
am 01.11.2019 - 16:53 Uhr
Super! Herzlichen Dank! Nach diesem Muster habe ich nun meine Library eingebunden.
"repositories": [
{
"type": "composer",
"url": "https://packages.drupal.org/8"
}
{
"type": "package",
"package": {
"name": "jQuery Cycle Plugin",
"version": "3.0.3-2013.07.11",
"type": "drupal-library",
"dist":{
"url": "https://github.com/malsup/cycle/archive/master.zip",
"type": "zip"
}
}
}
Der Rest stimmt mit Deiner json-Datei überein. Nach dem Einbinden habe ich den Befehl "composer update" ausgeführt. Nun werden einige symphony-updates ausgeführt. Das etwas mit dem neuen Eintrag des Cycle Plugins angestellt wird, sehe ich nicht. Fehlermeldungen gibt es auch nicht. Kann ich die "Wirkung" dieses Eintrags irgendwie überprüfen?
Vor rund 10 Jahren von Wordpress auf Drupal umgestiegen und z.Zt. mit Drupal 10 unterwegs.
Bei den libraries gehe ich
am 01.11.2019 - 16:48 Uhr
Bei den libraries gehe ich oft noch einen Schritt weiter. Ich clone das Paket auf Github in meinen eigenen Space. Dann werfe ich alles raus, was ich nicht brauche und was evtl. Sicherheitsrisiken enthalten kann. Meist bleiben dann nur das JavaScript und zugehöriges CSS übrig. Anstelle von jackmoore/colorbox kommt dann meinspace/colorbox. Ich verändere bei mir die Versionen nicht automatisch. Oft verträgt sich das Drupal-Module auch nicht mit den neusten Versionen. Ob die Libraries auch mittels "composer update" upgedatet werden, kann ich nicht sagen. Das habe ich bisher nicht beobachtet.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Danke für die Rückmeldung!
am 01.11.2019 - 17:01 Uhr
Danke für die Rückmeldung! Mit Git will ich mich bald beschäftigen, vor allem, da Plesk mir mittlerweile Git-Unterstützung anbietet (habe aber noch nicht vertsanden, wie dies genau funktionieren soll). Ich hatte jetzt nach Deinem Muster meine composer.json bearbeitet und diese Zeilen eingefügt:
"repositories": [
{
"type": "composer",
"url": "https://packages.drupal.org/8"
}
{
"type": "package",
"package": {
"name": "jQuery Cycle Plugin",
"version": "3.0.3-2013.07.11",
"type": "drupal-library",
"dist":{
"url": "https://github.com/malsup/cycle/archive/master.zip",
"type": "zip"
}
}
}
Ein composer update läuft, kopiert mir aber keine Datei in den Library-Ordner. Fehlermeldung gibt es auch nicht. Die Testseite läuft wie zuvor. Kann ich die Wirkung dieses neuen Eintrags irgendwie überprüfen?
Vor rund 10 Jahren von Wordpress auf Drupal umgestiegen und z.Zt. mit Drupal 10 unterwegs.
Versuch es mal mit dieser
am 01.11.2019 - 18:27 Uhr
Versuch es mal mit dieser Definition. Der Name muß dem Platz entsprechen (siehst Du oben auf der Github Seite). Die Version hat nur 3 Gruppen. Bei mir hat das so als cycle Ordner in Libraries geladen.
{
"type": "package",
"package": {
"name": "malsup/cycle",
"version": "3.0.3",
"type": "drupal-library",
"dist":{
"url": "https://github.com/malsup/cycle/archive/master.zip",
"type": "zip"
}
}
}
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Perfekt
am 01.11.2019 - 20:57 Uhr
Klasse - hat geklappt. (eine kleine Änderung war noch notwendig und zwar muss es anscheinend statt "malsup/cycle" "malsup/jquery.cycle" heißen. So wird in libraries auch der Ordner jquery.cycle (statt nur cycle) angelegt, den das Plugin verlangt) Nach dem Einfügen wird mit composer require malsup/jquery.cycle die library an den richtigen Ort kopiert. Vielen Dank für die Hilfe! Noch rasch 3 Fragen.
1. Wenn ich einen downloadlink nicht zu master.zip sondern ohne zip also zu https://.../jquery.cycle.all.js unter url eintragen würde, was wäre dann bei "type" statt zip einzutragen?
2. Wäre ohne zip dieser Teil
"type": "package",
"package": {
noch richtig?
3. Sollte ich statt "version": "3.0.3" nicht besser "version": "^3.0.3" eintragen, um updates für 3.X.X mitzubekommen?
Vor rund 10 Jahren von Wordpress auf Drupal umgestiegen und z.Zt. mit Drupal 10 unterwegs.
Anstelle des Einbindens jedes
am 01.11.2019 - 20:53 Uhr
Anstelle des Einbindens jedes einzelnen Repos kann auch https://asset-packagist.org verwendet werden. Vereinfacht das Handling doch um einiges.
asset-packagist
am 01.11.2019 - 21:10 Uhr
Interessant. Danke für den Tipp! Wie sieht denn dann z.B. die Einbindung von meinem jquery.cycle in der composre.json aus? Als repository füge ich
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
]
hinzu.
Und wie finde ich jetzt den richtigen Eintrag für meine jquery.cycle?
Vor rund 10 Jahren von Wordpress auf Drupal umgestiegen und z.Zt. mit Drupal 10 unterwegs.
Alles fertig
am 02.11.2019 - 10:32 Uhr
Durch asset-packagist habe ich auf die Schnelle nicht durchgeblickt, wie ich dies umsetzen soll.
Mit Werners Anleitung habe ich jetzt 6 Libraries eingebunden und alles funktioniert! Danke für die tolle Unterstützung!
Vor rund 10 Jahren von Wordpress auf Drupal umgestiegen und z.Zt. mit Drupal 10 unterwegs.