gzhegow
@gzhegow
aka "ОбнимиБизнесмена"

Что делать с вендорами при сборке фронтенда? Как сжимать?

Для того, чтобы понравится гуглу (холивар!1111 урра) мы имеем необходимость сжать все яваскрипты и стили в единый файл.

Свои файлы сжимаются в общем-то без проблем
Приколы наступают с вендорами, а также с дополнительными файлами типа шрифтов разных

Как это выглядит:

/assets
-- /img
-- /stylus
-- /js
-- /fonts
-- /audio
-- /video
-- /ещеКакаяТоПапкаИНафигаОнаЗдесьВообще...

/dev
-- /img
-- /css
-- /js

/public
-- /img
-- /css
-- /js


Соответственно на выходе после GULP (вах, какой он маладЭц, дай обниму)
в паблике и деве получаются значит файлы. И если допустим связи с картинками в CSS можно прописывать через хитрости вроде
../../logo.jpg
То пути к шрифтам, которые остались в assets так уже не сработают

Итак, проблемы
1. Чтобы понравится гуглу, в файл main.min.css / main.min.js должны попадать вендоры(библиотеки я имею в виду, например jquery, или там webhostinghub-glyphs, или fancybox) в том числе, если даже с помощью гульпа скрипты и стили из них обьединить в один файл вместе с моим кодом, соблюдая порядок, то остальная часть библиотеки остается в assets, и в паблике ее нет.

2. Банально шрифты которые лежат в assets, их что, просто копировать в дев и паблик (пусть даже гульпом)?

3. Пути которые мы железно зашьем в верстку будут то на assets, то на public, то на dev, это вообще не комильфо и не красиво. Опять же захотел поработать с DEV версией, надо полсайта переписывать пути

4. За счет нашего любимого (base href="/") относительные пути для картинок, зашитые в верстке - будут подводным камнем постоянно.

5. Соответственно если подключать либы просто через bower, то мы не решаем проблему "понравится гуглу", поскольку у нас по прежнему происходит подключение двух десятков скриптов на странице через разные директивы script.

6. Опять же в либах (вендорах) написанных не мной могут попадаться относительные пути, и когда код библиотеки окажется в едином файле, относительные пути будут ожидать найти все сопуствующие в главной папке, поскольку библиотека получается имеет родительскую категорию public

Какой лучший способ это организовать? Что здесь куда, а что лучше не трогать вообще?

Уверен, что здесь полно очень умных ребят, которые тысячу раз делали подобные штуки, подскажите пожалуйста!
  • Вопрос задан
  • 314 просмотров
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Используй sass/less для плагинов

В скрипте гульпа используй структуру
/prod
  main.css
  main,css.map
  main.js
  main.js.map
....
  /img


так пути будут выглядеть в результате
backgound: url('/img/bg.jpg')
Ответ написан
Ваш ответ на вопрос

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

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