Как просто устанавливать js-библиотеки через composer

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

ivnish 22 декабря 2021 в 10:32
2

Многие любят устанавливать js-библиотеки в /libraries используя composer. Я, если честно, не видел особого смысла прописывать кучу конфигов для каждой библиотеки в composer.json, потому что друпаловские модули чаще всего используют устаревшие библиотеки (blazy, slick, colorbox и тд), которые уже давно не обновляются. Мне было проще добавить эти библиотеки сразу в git-репозиторий и не думать о них.

Плюсы этого метода: скачал, закоммитил, готово

Минусы этого метода: библиотеки хранятся в git-репозитории

Но недавно @filinkov.ru подсказал удобный способ установки библиотек через composer

Устанавливаем пакет drupal-libraries-installer

composer req zodiacmedia/drupal-libraries-installer

После чего в секцию extra файла composer.json нужно добавить

"drupal-libraries": {
    "blazy": "https://github.com/dinbror/blazy/archive/1.8.2.zip"
},

где первый параметр - это будет имя папки в /libraries (друпаловские модули часто просят другое название, чем у автора библиотеки), а второй - это путь к архиву для скачивания

Теперь composer сам скачает архивы с библиотеками и распакует их в /libraries

У пакета drupal-libraries-installer есть и расширенные настройки. Ознакомиться с ними можно на странице пакета на гитхабе

Плюсы этого метода: библиотеки НЕ хранятся в git-репозитории

Минусы этого метода: их нет, я думаю

Авторы

ivnish Drupal FullStack Developer

Комментарии

Аватар пользователя vlucas vlucas 22 декабря 2021 в 11:53

Минусы этого метода: скорее всего либа не будет обновляться, если ручками не прописать новый путь к архиву.

Аватар пользователя ivnish ivnish 22 декабря 2021 в 11:56

Я был бы не очень рад, если бы либы обновлялись без моего ведома. Поэтому вариант с указанием архива очень даже норм

Аватар пользователя vlucas vlucas 22 декабря 2021 в 11:58

Почему же без твоего ведома? Всё же настраивается - хочешь залочь версию, хочешь выставь как надо. Да и обновляя ты же видишь весь процесс

Аватар пользователя gun_dose gun_dose 22 декабря 2021 в 15:27
1

Там была предыстория, что либа очень старинная и её нет ни в bower-asset, ни в npm-asset. Для таких случаев вполне годный способ, только это стоит указать в тексте.

А во всех остальных случаях и bower-asset, и npm-asset лучше указанного способа, т.к. там достаточно один раз настроить проект, после чего все либы будут ставиться через composer require без необходимости ручной правки composer.json

Аватар пользователя VasyOK VasyOK 14 октября 2023 в 22:58

А как этим способом установить библиотеку этого модуля?
https://www.drupal.org/project/elevate_image_zoom
Там один файл, а не архив.

Так не получается:

drupal-libraries": {
 "
elevatezoom": "https://raw.githubusercontent.com/elevateweb/elevatezoom/master/jquery.elevatezoom.js"
}