Open pavelpower opened 9 years ago
Так там и bemhtml в зависимостях нет
А все таки он там есть, внутри либы enb-bemxjst
@blond
@pavelpower, привет!
Извини за долгий ответ.
На данный момент все действительно так.
Про возможность использовать кастомный шаблонизатор есть задача — https://github.com/enb-bem/enb-bem-specs/issues/11.
Я пробовал её решить с помощью введения специального понятия мета-технология, чтобы можно было самому настраивать чем и как собирать нужные файлы, в том числе и шаблонизатор в составе клиенского js — https://github.com/enb-bem/enb-bem-specs/pull/13. Но, кажется, такое решение оказалось сложным для использования.
Есть мысли, что можно сделать опцию, например, templateEngine: 'BH'
, которой просто указывать какой шаблонизатор использовать BEMHTML
или BH
. Такое решение устроит?
По поводу i-bem.js
, кажется, что он тянется как раз из-за BEMHTML и если поддержать сборку с помощью BH то он приезжать не будет.
Блок jquery
требуется в блоке speс
: https://github.com/narqo/bem-pr/blob/master/spec.blocks/spec/spec.deps.js#L19. Раньше это было нужно для корректной работы mocha
но, кажется, что это давно уже не так, и его можно безболезненно оторвать.
Салют, @blond! Спасибо за емкий ответ.
Решение по использованию шаблонизатора при помощи опции templateEngine
на текущий момент выглядит хорошо.
И если есть возможность выпилить jquery - то это очень хорошо. Т.к. при формировании тестов для проверки на устройствах jquery печальный рудимент.
Вопрос в том, на сколько быстро можно внести эти изменения? И как можно помочь, сможешь ли скоорденировать действия поставив задачи?
Это я к чему - инструмент нужен и уже сейчас, и я готов выделить ресурсы на то, чтобы допилить его. Но, так же, не хочется терять время зря. Лучше делать все сразу по плану, который у тебя, судя по всему, уже есть.
Вопрос в том, на сколько быстро можно внести эти изменения? И как можно помочь, сможешь ли скоорденировать действия поставив задачи?
Самый быстрый способ — присылать PR'ы :)
На все вопросы буду стараться быстро отвечать.
@blond Ты только скажи откуда берется <script class="spec-runner">(function() {var global = this;typeof modules === "object"? modules.require(["jquery", "mocha", "spec"], function($, mocha) { init($, mocha); }) : init(global.jQuery, global.mocha);function init($, mocha) { global.mochaPhantomJS? global.mochaPhantomJS.run(done) : mocha.run(done); function done() { $("#mocha").show() }}}());</script>
Понять не могу найти не ищется...
@blond все понял, придется еще и bem-pr править :(
Хотя там уже есть BH https://github.com/narqo/bem-pr/blob/master/spec.blocks/spec/spec.bh.js
Видимо нужно просто обновить версию
@pavelpower всё так. Можно, конечно, ещё больше заморочится и попробовать отказаться от bem-pr
.
Мне не нравится его использование с точки зрения API. Пользователь вынужден подключать bem-pr
в уровни. Логичнее, чтобы необходимый код был в enb-bem-specs
.
@narqo признайся, зачем ты туда BH добавил?
Не уж, то bem-spec свой уже с BH сделал?
@blond, да, ты прав bem-pr тут лишний однозначно. Лучше допишу блоки внутри enb-bem-specs
зачем ты туда BH добавил
Мне для какого-то своего проекта на bh нужно было написать тестов на блоки, чтобы удобнее было разрабатываться. Быстрее оказалось взять уровни из bem-pr, накидать сборку обычного бандла на enb и запускал тесты в браузере. Для разработки подошло, а никакого cli + ci там и не предполагалось. С тех в bem-pr есть bh-шаблоны.
@narqo Спасибо!
@blond ты посмотри что получается
https://github.com/pavelpower/enb-bem-specs/blob/master/lib/node-configurator.js
Я смотрю и стили исключительно через .styl
используются.
Но так повелось, что у нас в проекте прижился .less
И похоже, что нужно менять подход к данной либе, не очень все таки использовать настройки. Как-то плагинами надо, что-ли.
Может все таки немного изменим архитектуру?
@pavelpower Наткнулся на те же грабли. Скажи сейчас в каком состоянии идея с поддержкой bh? \cc @blond
Скажи сейчас в каком состоянии идея с поддержкой bh?
enb-bh
умеет собирать BH
с мимикрией под BEMHTML
, поэтому с точки зрения enb-bem-specs
разницы вообще не будет.
@tadatuta enb-bh
умеет, но тут bemhtml подключается. Как ему можно bh скормить?
@komplomon ну как как решил, запилил свой enb-bem-specs с преферансом и поэтессами
Теперь правда btmhtml не умеет а bh умеет
@pavelpower Сейчас пробую запустить тесты bem-components c твоим форком enb-bem-specs. Тесты валятся ругаясь на неподключеный BEMTHML.
@kompolom я делал только под BH, т.к. времени не было на реализацию вместе BH и BEMHTML. У нас в проекте шаблоны только BH.
@kompolom вся магия в файле https://github.com/pavelpower/enb-bem-specs/blob/master/lib/node-configurator.js
в моем форке отличие два:
@pavelpower Все так, но в bem-components есть BH шаблоны. А less я обратно переключил на stylus
@kompolom тогда как решишь проблему с "Тесты валятся ругаясь на неподключеный BEMTHML." отпиши
@kompolom, по ходу забыл ты раскрыть как выбирать в конфигах технологию.
@pavelpower там в examples есть пример https://github.com/kompolom/enb-bem-specs/blob/33%40add-template-engine-option/examples/silly/.enb/make.js
Было хотели прикрутить enb-bem-specs
В общем полная беда. Templates только на bemhtml, а мы пользуемся BH - ибо он по мнению команды понятнее.
Потом, как оказалось он тянет за собой блок
jquery
- которого у нас просто нет, а еще хочетi-bem
.В общем очень странные желания для сборки тестов и не понятно почему ему нужен так
jquery
, иi-bem
?Итог выглядит печально:
Так может кто уже получил опыт заведения unit-тестирования без i-bem, jquery?
Видится это примерно так:
В блоках файлы *.spec.js
В которых написаны тесты в BDD стиле.
Сборка происходит в отдельную папочку, и для сборки используются только те слои переопределения кои используются для development мода.