Как просто устанавливать 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, модератор drupal.ru

Комментарии

Аватар пользователя 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