Closed blond closed 10 years ago
Сюда бы еще сразу затащить серверную технологию с инклудами: https://github.com/bem/bem-components/blob/eee80c20dbf390c194ab21f54efa09f578a382ce/.enb/techs/bh-include.js
А в последнюю версию технологии bh
добавлен варинг по переходу на пакет enb-bh
?
@mdevils ещё нет, надо же вначале выпустить пакет enb-bh
, чтобы было на что ссылаться. После выпуска, конечно же, добавим.
Сюда бы еще сразу затащить серверную технологию с инклудами
Я правильно понял, что она нужна для того, чтобы хранить всё одним файлом, а не разбросанной пачкой?
Но проблема в том, что она не будет учитывать внутренние require-ы, а их вроде бы никто не запрещает использовать в серверной технологии.
Но проблема в том, что она не будет учитывать внутренние require-ы, а их вроде бы никто не запрещает использовать в серверной технологии.
Никто не заставляет ей пользоваться :) Технология нужна для тех, кто релизится монолитными файлами, а не мини-модулями (в частности, нам, Серпу).
bh-include
технологию. Может стоит подумать над названием? Сейчас не очень понятно, что это серверная технология.html-from-bemjson
технологию.bh-server
про утечки памяти.@mishanga, пока не сквашу коммиты, чтобы было понятнее что происходит, если нужно — перед мёржем исправлю.
Возникли вопросы по опциям:
dependencies
, встречающаяся в клиентских технологиях никак не задокументированна. Нужна ли она для bh-include
?jsAttrScheme
и jsAttrName
можно удалить из серверных технологий?jsAttrScheme
и jsAttrName
??.bemhtml.js
или ?.bh.js
?@andrewblond bh-include
можно переименовать в bh-server-include
.
Технологию html-from-bemjson
лучше переименовать в bh-html-from-bemjson
. Будет такая же про bemhtml
.
dependencies
не нужна в bh-include.jsAttr*
не нужны в серверных технологиях? Как-то же надо выводить поле js
.?.bh.js
.Технологию html-from-bemjson лучше переименовать в bh-html-from-bemjson. Будет такая же про bemhtml.
Такие же про bemhtml, bt и т.д. будет лежать в совсем других пакетах, и вроде бы имени пакета достаточно как скоупа: enb-bh/techs/html-from-bemjson
и enb-bemxjst/techs/html-from-bemjson
.
Пора уже перестать косить под bemhtml :) Надо делать свой таргет — ?.bh.js.
Тогда может и 'bh.BEMHTML = { apply: ... };'
заменить на 'bh.BH = { apply: ... };'
?
Такие же про bemhtml, bt и т.д. будет лежать в совсем других пакетах, и вроде бы имени пакета достаточно как скоупа
Да, всё верно, ок.
Тогда может и
bh.BEMHTML = { apply: ... };
заменить наbh.BH = { apply: ... };
?
Да, обязательно.
Есть ещё код про BEMHTML
на клиентской части:
https://github.com/andrewblond/enb-bh/blob/initial/lib/bh-client-processor.js#L76-L77
https://github.com/andrewblond/enb-bh/blob/initial/lib/bh-client-processor.js#L81
Но заменить его на BH
не получится, т.к. BH
уже занят: https://github.com/andrewblond/enb-bh/blob/initial/lib/bh-client-processor.js#L69
Надо оторвать мимикрию под bemhtml. Явно звать bh.apply
.
Готово!
Т.к. эти изменения ломают обратную совместимость, может про это надо написать, например, в MIGRATION.md
?
Это напишем в основном репозитории, когда будем выпускать мажорную версию.
Круто :) Теперь бы это ещё потестировать.
Теперь бы это ещё потестировать.
Может добавить простых примеров, которые собирать всеми технологиями в разные таргеты и эти таргеты уже ручаки потестить?
Давай вольём, а тесты и фиксы отдельным реквестом.
Давай вольём, а тесты и фиксы отдельным реквестом.
Волшебная кнопочка merge pull request
есть только у тебя :) Засквашить всё в один коммит?
Да, склеивай всё.
Готово!
@mishanga @andrewblond А как вы предполагаете использование шаблонов на клиенте в универсальных блоках в библиотеках, поддерживающих оба шаблонизатора? Будет block.bh.browser.js
и block.bemhtml.browser.js
?
Мне кажется, что в идеальном мире, где оба шаблонизатора принимают на вход одинаковый bemjson и возвращают консистентный html, должно быть что-то вроде templateEngine.apply()
. Тогда депенды по технологиям позволят собирать на клиент тот тип шаблонов, который нужен на данном конкретном проекте и не задумываться о том, как их звать.
+1 к @tadatuta
@tadatuta не знаю, не думал об этом :) Но я тоже +1.
bh
.enb-validate-code
.enb@0.8.22+
: используется общий инстансvow-fs
.vow@0.4.3
.README.md
.