Как использовать и для чего предназначен main-bower-files?

Если кто-нибудь использует в своих проектах main-bower-files , то опишите вкратце его предназначение и покажите или подробно расскажите, как его запустить ( желательно на примере gulp ).

Я понимаю, что он предназначен, чтобы подключать библиотеки установленные с помощью bower к файлам.html, но не понимаю до конца, принцип. Да и запустить его не могу из-за того, что в доках написано -
это метод method(/* тут что-нибудь */) .
  • Вопрос задан
  • 7330 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Он ничего не подключает. Задача этой штуки, собрать пути до всех библиотечек.

Приведу пример. Возьмем jQuery. Для того что бы использовать jQuery в своем проекте вам надо сделать следующее.
bower install --save jquery
bower будет искать пакет с названием jQuery, скачает его и на этом его миссия будет завершена, а у вас в директории bower_components (или как вы ее назвали в bowerrc), будет папка jquery с несколькими файликами. В случае jQuery вам нужен только один файл, он является главным.

В bower.json пакета jquery указывается главный файл (тот, который собственно и должен использоваться в проекте)
{
  "name": "jquery",
  "version": "2.1.2-pre",
  "main": "dist/jquery.js",

вот это вот поле main и содержит имя нужного нам файла. К слову файлов можно указывать сколько угодно и какого угодно типа.

Задача этой тулзы - пробежаться по всем зависимостям которые использует ваш проект, собрать пути до каждого файлика указанного в поле main конкретного пакета, и отдать вам массив этих путей.

Далее вы можете: сконкатенировать js-ки в один файл, закинуть их в другую тулзу которая постарается найти эту библиотеку в cdn и сделает локальный фэлбэк... вариантов масса. Суть в том что вам не нужно вручную прописывать пути до нужных файлов, это не интересно, скучно, и после обновления пакетов внезапно может поломаться сборка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@iboozy
А как быть с библиотеками, которые не заполнили у себя поле "main" (пример: библиотека async)
И что делать, если у разных библиотек главный файл называется одинаково? (пример: select2 и angular-ui-select-2, второй зависит от первого, но называются одинаково select2.js)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы