LINUX.ORG.RU

А вот кому какой менеджер ассетов надо? Давайте обсудим

 ,


0

1

Я давно поддерживаю нодовский порт sprockets под названием mincer https://github.com/nodeca/mincer. И как-то он мне поднадоел :) . Хочется чего-то попроще и погибче.

- надоело тащить глобальные библиотеки через bower, хочется подо все npm.
- неудобно, что фактически приходится использовать 2 сборщика ассетов - один (кастомный), чтобы кнопелять компоненты проекта, другой (минсер) под раскладывание файлов на диске.
- возможно хочется переделать все на streams.
- когда в проектах очень много файлов - поиск притормаживает.
- нужно live update интегрировать.
- транспилеры под es6 тоже бы неплохо.

Вопрос к тем, кто развесистые клиентские яваскрипты собирает. А как у вас проекты организованы и чем вы пользуетесь? Особенно интересуют проекты, где все разбито на компоненты, и можно ли избежать ада, когда каждому компоненту нужно конфиг прописывать.

У меня как-то по наитию все сложено в древовидную структуру https://github.com/nodeca/nodeca.forum/tree/master/client. Но, честно говоря, не до конца понятно, как это дело гибко расширять. Например, добавив в некоторые компоненты riot.js или перекрыв скинами.

★★★★★
Ответ на: комментарий от x3al

Смотри, вот делаешь ты свой проект, с розовыми понями, все хорошо. И однажды надо подключить стороннюю библиотеку, написанную косорукими дебилами. И та библиотека говорит «дайте мне базовый URL, а дальше я сама буду подгружать переводы». А у тебя все ассеты давно с хешами в именах файлов, да и той папки вообще нет, потому что все в один бандл загнано. И как этой кривой либе файлы подкладывать?

Я без претензий, просто хочу понять, какие проблемы вебпак решать умеет, а какие нет. У меня создалось впечатление, что он расчитан на довольно простые случаи. И довольно «линеен» (все обычно зависит только от расширений, не от путей к файлам).

Vit ★★★★★
() автор топика
Последнее исправление: Vit (всего исправлений: 1)
Ответ на: комментарий от Vit

«дайте мне базовый URL, а дальше я сама буду подгружать переводы»

Смотря как оно будет подгружать. Если через XHR — проще всего будет провести это мимо webpack'а. У меня сторонние библиотеки как правило не просят такого. Ближайшее извращение — jquery-timeago, но даже оно не пытается грузить само, поэтому там такой проблемы нет.

И да, как ты представляешь себе такой пакет в NPM?

x3al ★★★★★
()
Ответ на: комментарий от x3al

К популярным библиотекам, впрочем, есть специальные плагины webpack'а в том числе для подобных вещей.

x3al ★★★★★
()
Ответ на: комментарий от x3al

И да, как ты представляешь себе такой пакет в NPM?

Никак конечно :) . Я просто помню, с чем приходилось сталкиваться, и пытаюсь понять, как это в других вундервафлях сделано.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Я хз, я не настоящий фронтэндщик. В моих юзкейсах хватает для всего, хотя некоторые вещи кажутся странными.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Да не, с популярными проблем особо уже нет. Там давно обертки поправили.

Косяки у всякого редкого говна. Например у некоторых старых плагинов к knockout, которые пытаются сами лезть к глобальному объекту при регистрации.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Vit, это вполне реально сделать.

Тебе нужно будет заюзать file-loader для своих базово-уэрэльных файлов, и складывать их в папку (это задается параметром лоадера filename, например filename: '[path][name][ext]'). При подобной настройке файлы будут складываться согласно их расположению в src/ и никаких хешей добавляться не должно.

Я думаю, что webpack может почти все, но для некоторых штук нужно извращаться и делать костыли. Несмотря на это я грызу кактус и тащусь с него.

noomorph
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.