1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. FAQ

Composer и библиотеки

Главные вкладки

Изучаю drupal 9, и уже давно где-то видел, какой удобный инструмент - компосер - мол нужно поставить модуль - только напиши, он всё сам установит куда нужно и даже библиотеки все сам подтянет.
Но то ли я в чем-то не разобрался, то ли что, но он и не собирается их скачивать.
Или всё-таки до сих пор это нереализовано?
вот есть модуль chosen (например), ему нужна библиотека, а что писать в командной строке то?
composer require drupal/chosen устанавливает сам модуль, библиотеку не хочет.
Соответственно в друпале потом пишут You need to download the Chosen JavaScript file and extract the entire contents of the archive into the libraries/chosen directory in your Drupal installation directory.
Но там даже нет этой директории libraries нигде.
Или нужно так же как и для 7 друпала установить сначала libraries API?

Похоже, я что-то многого ожидал от этой 9й версии и от компосера тоже Sad
Почему-то в 7 друпале было хоть и муторнее всё это скачивать/устанавливать, зато понятнее.
Тут просто какие-то грабли, а то ли день такой седня неудачный.

Комментарии

Аватар пользователя ivnish ivnish 1 апреля 2021 в 11:45
1

Но там даже нет этой директории libraries нигде.

Если её нет, её нужно создать)

Или нужно так же как и для 7 друпала установить сначала libraries API?

Не нужно

Почему-то в 7 друпале было хоть и муторнее всё это скачивать/устанавливать, зато понятнее.

Принцип работы с библиотеками не изменился. Их по-прежнему нужно скачивать, если они требуются какому-то модулю. Но! Часто разрабы прописывают либу как зависимость к модулю и она скачивается композером вместе с модулем. Иногда делают драш команду для скачивания (я так делаю в своих модулях)

Аватар пользователя WillWe WillWe 1 апреля 2021 в 11:57

Ага, диру создал (оказывается она должна была быть в /web/) - запихал туда библиотеку, chosen заработал. УРА. Одной проблемой меньше, теперь по крайней мере понятно, куда пихать другие библиотеки, когда они понадобятся.
Но правильно ли я понял, что есть такие модули, при установке которых компосером, эти библиотеки сами скачаются в /web/libraries/lib-name ?
Ну то есть в этом случае всё получается автоматом, ну а если уж нет, то просто вручную по старинке эту библиотеку пихаем?
А то чот я с bower-asset не могу понять, в мою тупую башку не лезет - что это, как и куда Smile

Аватар пользователя artomas artomas 1 апреля 2021 в 11:53

Да, многие прописывают все и это все само ставится.
Можно, помимо bower, просто добавлять библиотеки в composer.json. Вот, например, установка slick:

{
"type": "package",
"package": {
"name": "blazy/blazy",
"version": "v1.8.2",
"type": "drupal-library",
"dist": {
"url": "https://github.com/dinbror/blazy/archive/master.zip" ,
"type": "zip"
}
}
},
{
"type": "package",
"package": {
"name": "slick/slick",
"version": "v1.8.1",
"type": "drupal-library",
"dist": {
"url": "https://github.com/kenwheeler/slick/archive/master.zip" ,
"type": "zip"
}
}
}

И потом пакетом все поставить.

composer require blazy/blazy \
slick/slick \
drupal/blazy \
drupal/slick

Есть варианты, например, с webform, когда нужно плагин объединения поставить, чтобы уже Композер сам потом шел глубже и ставил эти библиотеки. Пруф: https://www.drupal.org/node/3003140.

Аватар пользователя WillWe WillWe 1 апреля 2021 в 12:03

Да-да-да, я когда гуглил, мне тоже попадался такой странный (на мой взгляд) способ установки библиотек - типа пропишите в copmoser.json
Я как это прочитал - несколько прифигел - то есть я должен зайти на фтп, или там через bash отредактировать этот файл этой вот вырвиглазной конструкцией, в которой как нефиг какую-то ошибку допустить, при этом нужно туда путь к самой библиотеке вставить - а не проще тогда её просто по фтп в libraries залить и всё? Smile
Я то просто думал, что этот composer.json ну как то сам должен создаваться что ли... типа пишешь composer require drupal/chosen - и всё. ну или composer require <библиотека - путь к ней> - ну как то так...
Ну или я совсем дурак )

Аватар пользователя WillWe WillWe 1 апреля 2021 в 12:09

Так это прописывание на порядок сложнее, чем заливка (учитывая, что прописывать нужно для каждой новой библиотеки по-новому), разве нет?
Ну то есть что проще - архив с либой распаковать в /web/libraries
или json отредактировать? Или я что-то недопонимаю?

Аватар пользователя WillWe WillWe 1 апреля 2021 в 16:00

Отвечу так сказать сам себе:
Благодаря отлично написанному мануалу для этого модуля https://www.drupal.org/project/select2
Стало понятно, что, куда и зачем пихать, чтобы композер (и bower-asset заодно вместе с ним) заработали как надо.

Логотип drupal.ru

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

Документация по совместной работе с репозиторием drupal.ru – https://docs.drupal.ru/code

Drupal – торговая марка Дриса Бёйтарта

12+

AltStyle によって変換されたページ (->オリジナル) /