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

22 декабря 2021 в 10:32
Аватар пользователя ivnish ivnish 2 6

Многие любят устанавливать 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-репозитории

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

Авторы: 

Комментарии

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

22 декабря 2021 в 11:53

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

22 декабря 2021 в 11:56

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

22 декабря 2021 в 11:58

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

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

22 декабря 2021 в 15:27

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

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

drupal-libraries": {
 "
elevatezoom": "https://raw.githubusercontent.com/elevateweb/elevatezoom/master/jquery.elevatezoom.js"
}
14 октября 2023 в 22:58