Kozack
@Kozack
Thinking about a11y

Как использовать Bower?

У меня есть проект с приблизительно такой структурой:
lang/
— ru.json
audio/
— audio.ogg
popup/
— css/
— — fontello/
— — popup.css
— — jquery.mCustomScrollbar.min.css
— img/
— — image.png
— plugins/
— — jquery.mCustomScrollbar.concat.min.js
— — linkify.min.js
— — Emoji.js
— popup.html
— popup.js
— popup-constructor.js
index.html
jquery-2.1.4.min.js
index.js
get.js


Используется jquery в index.html и в popup/popup.html.
Также используется несколько других плагинов в popup/popup.html

Как использовать bower для текущего проекта?

Как вариант, разместить в проекте папку bower_components и в .html файлах ссылаться на файлы из неё, но тогда размер проекта вырастает колоссально (больше чем в 4 раза).

Пробовал использовать Grunt, чтобы объединить все главные файлы из bower и закинуть в проект. И в принципе, это могло бы решить задачу, но не полностью. Как быть с jquery? Он тоже подключается с помощью Bower, и используется в двух разных файлах. Соответственно его нужно минифицировать, но не объединять со всеми остальными плагинами.

С помощью Grunt научился объединять и сжимать файлы. Результат можно закинуть в другую папку, но правильно ли я понимаю, что в таком случае все остальные файлы - аудио, картинки, html - придется копировать в ручную. А потом в .html файлах подключать сжатые файлы скриптов и стилей?

В идеале, хотелось бы получить копию моего проекта, где отдельно сжаты файлы для index.html: index.js+get.js. И для popup.html: popup.js+popup-constructor.js+<все файлы из bower исключая jQuery>, popup.css+<все файлы из bower>.
И чтобы в данных .html файлах автоматически подключились только что сжатые файлы.
  • Вопрос задан
  • 653 просмотра
Пригласить эксперта
Ответы на вопрос 3
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Если проблема только в копировании ассетов в папку с собранными скриптами, то grunt-contrib-copy.
Ответ написан
Комментировать
pomeo
@pomeo
Так и хочется вставить картинку "бритва оккама", вы какую проблему решаете?
Во-первых jquery надо подключать с любого cdn, у вас должна быть причина, которую вы точно знаете, для чего вы его кладёте в проект.
Как вариант, разместить в проекте папку bower_components и в .html файлах ссылаться на файлы из неё, но тогда размер проекта вырастает колоссально (больше чем в 4 раза).

Какая разница сколько он там на диске занимает, если вы через script src подключаете только минифицированные версии.
С помощью Grunt научился объединять и сжимать файлы. Результат можно закинуть в другую папку, но правильно ли я понимаю, что в таком случае все остальные файлы - аудио, картинки, html - придется копировать в ручную. А потом в .html файлах подключать сжатые файлы скриптов и стилей?

Зачем что-то копировать?
В идеале, хотелось бы получить копию моего проекта, где отдельно сжаты файлы для index.html: index.js+get.js. И для popup.html: popup.js+popup-constructor.js+<все файлы из bower исключая jQuery>, popup.css+<все файлы из bower>.
И чтобы в данных .html файлах автоматически подключились только что сжатые файлы.

Сожмите сразу index.js+get.js+popup.js+popup-constructor.js=app.js(например), всё что у вас в bower скорей всего лежит на cdn каком-нибудь, на https://cdnjs.com точно есть
Ответ написан
bukinion
@bukinion
можно через грантовский usemin решить часть (если не все) вопросов: в деве в html прописываете адреса (css и js), вокруг условные комментарии usemina, когда будет копироваться все на прод, настроить usemin задачу и она будет заменять ваш джикьюери и прочие, ссылками на минифицированные версии, и если не ошибаюсь, склеит, то что скажете.
И есть вроде плагин для гранта, что подменяет ссылкой на cdn.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы