Войти с помощью github
Форум /

По запросу в поисковик "i-bem__dom_init_auto" я нашел кучу незавершенных тем. Решился написать на форум, увидев, что подобным интересуюсь не только я. Думаю, понятно о чем пойдет речь. Стоит сразу 2 задачи: вынести ym, jquery, i-bem и т.д в отдельный файл, и заводить не по domReady. Хотелось бы решить максимально не велосипедя.

Прямо в документации сказано: noDeps (массив/объект) — можно отменить какую-то зависимость (например, i-bem__dom_init_auto).

Хотя, как я понимаю, принято категорически избегать noDeps. Видимо, по тем же причинам что и !important в css. Так или иначе, не могу его исплючить из финального deps, он все равно приезжает. Ну и если кто-то найдет этот пост, дабы уж не разметать все по кускам, напишу тут, что, по-идеи, достаточно собрать бандл с ym и блоком 'page'. А уж потом можно вторым файлом бандл со своими блоками лепить. Но! Тут то и встает у меня основная проблема.

Представим,что у нас такая картина:

//ym, i-bem и вот это все.
<script src="/assets/bootstrap/bootstrap.js" type="text/javascript"></script>
//В этом бандле один единственный блок
<script src="/bundles/index/index.js" type="text/javascript"></script>

Не работает. И нет ошибки в консоли. i-bem__dom_init_auto находится в конце файла bootstrap.js - не работает. Подрубаю к моему к моему index.js в сборку i-bem. Теперь мой блок находится в одном файле с i-bem__dom_init_auto, и все еще ниже него. Результат: теперь работает. Я бы и не против замешивать "стартер" с ручным вызовом в каждый свой бандл, кода то там совсем чуть-чуть. Но как тогда исключить его из сборки bootstrap.js?

Такая же проблема будет если просто взять https://yastatic.net/bem-components/latest/touch-pad/bem-components.js.Но там мои блоки хотя бы через раз работают. Да, именно так. Просто сижу и тыкаю ctrl + r, иногда код не отрабатывает. (Могу даже дать ссылку боевого сайта, где такая проблема) Успел твой файл скачаться до инициации? Ну и ладненько, радуйся.

Казалось бы, логичный кейс. Зачем мне заворачивать все в один бандл, если страниц на сайте много? Я ведь не ландинг делаю, пущай в кэш браузера запомнит основу. Давайте наконец-то разберемся.