Puncte:0

Instalarea dependențelor modulelor locale fără plugin-ul de îmbinare compozitor

drapel in

În prezent, am un proiect Drupal bazat pe compozitor, cu module de la terți și personalizate. Modulele terță parte sunt gestionate de compozitor fără probleme. Dar mi-ar placea mea personalizat module pentru a-și declara dependențele în a compozitor.json în directoarele lor și, de asemenea, să le instalez când rulez instalarea compozitorului la baza proiectului.

compozitor.json
web/
  module/
    contribuie/
      abordare/  
      admin_toolbar/
      ...
    personalizat/
      modulul_meu/
        compozitor.json
        ...
      celălalt_modul_meu/
        compozitor.json

În prezent:

  • eu am Composer merge plugin care funcționează bine în cea mai mare parte, dar ar dori să evite să-l folosească. Are un obicei urât de a suna Actualizați și ridicarea versiunilor de dependență atunci când nu ar trebui.
  • M-am uitat deja Arhivele de căi ale compozitorului. Deși instalează dependențele modulelor mele personalizate, de asemenea, face linkuri simbolice/copiază modulul personalizat în web/module/contrib ceea ce este inutil deoarece modulele personalizate sunt deja la locul potrivit în web/module/personalizat.

În viitor, aș împărți aceste module personalizate în propriile proiecte și le-aș stoca în propriile depozite. Dar, deocamdată, sunt încă găzduiți în același proiect cu șantierul Drupal pe care îl construiesc.

Cum instalez dependențele declarate în compozitor.json a modulelor mele personalizate locale împreună cu orice altceva?

Jaypan avatar
drapel de
Am creat modulul Vendor Stream Wrapper pentru a rezolva problema cu care probabil că încercați să o rezolvați. Poate vă poate ajuta: https://www.drupal.org/project/vendor_stream_wrapper
drapel cn
Dacă setați `tipul` modulelor dvs. personalizate fișierele composer.json la `drupal-custom-module` și aveți o setare în composer.json principal sub `installer-paths` pentru `type:drupal-custom- module` pentru a merge la `docroot/modules/custom/{$name}` (versiunile recente ale proiectului de bază recomandat au deja acest lucru), metoda ar putea funcționa? Sperăm că este suficient de inteligent pentru a nu încerca să suprascrie sursa cu ea însăși
Puncte:0
drapel sb

Iată ce trebuie să fac să funcționeze:

web/modules/custom/my_custom/composer.json

{
    "name": "[furnizor]/my_custom",
    "type": "drupal-custom-module",
    "description": "Modulul meu personalizat.",
    „necesită”: {
        "drupal/core": "^8.9 || ^9",
        "drupal/devel": "^2.1"
    },
    "minimum-stability": "dev",
    „depozite”: [
        {
            "type": "compozitor",
            „url”: „https://packages.drupal.org/8”
        },
        {
            "type": "compozitor",
            „url”: „https://asset-packagist.org”
        }
    ]
}

compozitor.json

{
...
  „depozite”: [
    {
      "type": "cale",
      "url": "web/module/custom/my_custom"
    }
  ],
...
  „necesită”: {
    ...
    „[furnizor]/my_custom”: „*”
    ...
  },
  „extra”: {
    „căile de instalare”: {
      ...
      "web/modules/custom/{$name}": ["tip:drupal-custom-module"],
      ...
    },
  }
...
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.