Ранее следуя одному туториалу я установил стороннюю библиотеку Slick. Теперь мне нужно установить стороннюю библиотеку Blazy. По аналогии с установкой Slick я могу написать вот такой код в repositories
файла composer.json:
"type": "package",
"package": {
"name": "dinbror/blazy",
"version": "1.8.2",
"type": "drupal-library",
"dist": {
"url": "https://github.com/dinbror/blazy/archive/master.zip",
"type": "zip"
}
}
}
И в терминале написать:
composer require dinbror/blazy
Правильно ли будет таким образом установить библиотеку? Спрашиваю потому что написал в гугле Install Blazy composer и получил немного другие варианты установки.
В первом варианте перед "type": "package"
, еще пишут "blazy/blazy" : {
"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"
}
}
},
Во втором варианте добавилось свойство "extra"
и "source"
куда было перемещено свойство "url"
"type": "package",
"package": {
"name": "dinbror/blazy",
"version": "1.8.2",
"type": "drupal-library",
"extra": {
"installer-name": "blazy"
},
"source": {
"type": "git",
"url": "https://github.com/dinbror/blazy",
"reference": "1.8.2"
}
}
}
Какая разница между вариантом, который я хочу установить по аналогии с установкой библиотеки slick
и вариантами установки найденными в интернете? Все варианты верны?
Комментарии
Библиотека blazy не обновлялась уже 5 лет. Просто добавьте её в репозиторий проекта в каталог /libraries
А почему в composer.json ничего не нужно прописывать если библиотека не обновлялась 5 лет?
А какой смысл ставить её через composer?
Я возможно не правильно понял, но насколько я понял если друпал установлен через composer то модули и библиотеки также нужно устанавливать через composer. Раньше пробовал просто закинуть одну библиотеку которая была в Requirements одного модуля в /libraries ничего не прописывая в composer.json, и модуль не выполнял своей задачи.
Модули да, потому что они должны обновляться через composer. Но js-библиотеки ставить композером необязательно, в этом просто нет смысла
Не слушай никого и подключай сторонние библиотеки правильно в Drupal используя
composer require zodiacmedia/drupal-libraries-installer
После этого используй блок для подключения библиотек
"glightbox": "https://github.com/biati-digital/glightbox/archive/3.0.9.zip",
"flickity": "https://github.com/metafizzy/flickity/archive/v2.2.2.zip",
"tooltipster": "https://github.com/calebjacob/tooltipster/archive/4.2.8.zip",
"fontawesome": "https://github.com/FortAwesome/Font-Awesome/releases/download/5.15.3/fon...,
"fancybox": "https://github.com/fancyapps/fancybox/archive/v3.5.7.zip",
"jquery_confirm": "https://github.com/craftpip/jquery-confirm/archive/v3.3.4.zip",
"inputmask": "https://github.com/RobinHerbots/Inputmask/archive/5.0.6.zip"
},
А вот это хорошая штука, надо взять на вооружение
Не могу сходу привести пример, но иногда требуется чтобы из дистрибутива библиотеки была только определенная папка. Этот drupal-libraries-installer позволяет папку из архива выделить? А переименовать ее?
Скорее всего нет, да и зачем это, место пытаетесь сэкономить? Я не вижу смысла экономить место. Подключение все равно происходит как правило определенного файла из папки и он всегда постоянный даже после появления новой версии библиотеки.
Нет, не пытаюсь. Просто в приведенном примере указывается архив, который должен в свою папку распаковаться при установке. А если папку надо переименовать? Контриб модуль всегда определит нужный путь файлов библиотеки?
Ключ (например, fontawesome) и является названием папки, в которую будет распаковываться архив. Можно писать любое название. Больше насколько я знаю плагин ничего не умеет. Но в целом он решает задачу, не нужно следить скопировал или нет между серверами библиотеки, прод и дев всегда идентичны.
ок, попробую побороться за чистоту репозиториев от контриба
Написал заметку в документацию. Отметил Вас как соавтора