narqo / bem-pr Goto Github PK
View Code? Open in Web Editor NEWA set of bem-make extenstions to wrap common infrastructure's tasks
A set of bem-make extenstions to wrap common infrastructure's tasks
Последнее обновление было 3 года назад. Может стоит обновить chai? Т.к. доки (чая) опережают возможности в bem-спеках.
см. изменения в #33
With @file
tag at the top of each processed file it would be much easier to generate suitable API documentation for blocks that split to several levels.
\cc @dfilatov
Из-за того, что технология bemhtml+browser.js+test.js
использует bemjson
в качестве декларации, декларация модификатора БЭМ-сущности (блока или элемента) всегда будет включать саму БЭМ-сущность поскольку в bemjson
невозможно задекларировать только модификатор:
// default.bemjson.js
{ block : 'b1', mods : { type : 'yes' } }
развернется в default.bemdecl.js
[
{ block : 'b1' },
{ block : 'b1', mod : { name : 'type', val : 'yes' } }
]
Сейчас примеры и тесты можно собрать только точечно.
Нужны цели для сборки всех примеров/тестов блока и примеров/тестов всех блоков уровня *.sets
.
We need BEMHTML in tests runtime for dynamically generated html.
Perhaps it should be done in projects (in hem-core?).
cc @dfilatov
One should drop phantomjs
tech, and move phantom firing logic into bem-make's node
Ошибка возникает при геренации html из bemjson'a наложением bemhtml'я
Небольшое расследование на эту тему:
По коду ниже видно, что _apply(this.mode = 'js-params') вызывается для dektop'a из шаблона блока (block b-page), а для touch'ей из шаблона элемента (block b-page elem body)
Если для touch'ей переписать код на _apply(this.mode = 'js-params', this.elem='') ошибка изчезает.
Так же возможно ошибка из-за старой версии xjst прописаной в package.json тут
https://github.com/bem/bem-tools/blob/introspect/package.json
blocks-common/i-global/i-global.bemhtml
....block b-page, this._mode === 'js-params':
blocks-desktop/b-page/b-page.bemhtml
....block b-page {
........mix, !this.elem, !this.ctx._iGlobal: {
............jsParams = apply(this._mode = 'js-params');
blocks-touch/b-page/b-page.bemhtml
....block b-page {
........elem body, mix, !this.ctx._iGlobal: {
............jsParams = apply(this._mode = 'js-params');
Reporter should be hidden until all tests completed
chaijs, sinon, mocha по версиям ушли вперед. Может пора обновиться?
Сейчас конечный граф целей сборки ресурса выглядит, примерно, так:
all
build
...
desktop.sets/block.examples/10simple/10simple.bemjson.js
desktop.blocks/block/block.examples/10simple/10simple.bemjson.js
desktop.sets/block.examples/10simple
...
desktop.sets/block.examples ← GeneratedLevelNode (*)
desktop.sets/block.examples/10simple/10simple.bemdecl.js
desktop.sets/block.examples/10simple/10simple.bemjson.js
...
desktop.sets/block.examples/10simple/10simple.deps.js
desktop.sets/block.examples/10simple/10simple.bemdecls.js
desktop.sets/block.examples/10simple/10simple.bemjson.js
...
При сборке <deps> → <bemdecl> → <bemjson>
, цель desktop.sets/blocks.examples
(*) инвалидируется при каждом изменении ресурсов примера, в том числе, при создании промежуточных файлов (<bemdecl>
).
Из-за этого сборка постоянного пытается «создать» blocks.examples
.
13:47:43.839 - info: [t] Build time for "desktop.sets/button.examples" [11]: 24ms
13:47:43.844 - info: [t] isValid() time for "desktop.sets/button.examples" [12]: 1ms
13:47:43.845 - info: [*] make 'desktop.sets/button.examples' [12]
13:47:43.848 - info: [t] isValid() time for "desktop.sets/button.examples/30link/_bem/30link_bem.bemjson.js" [11]: 5ms
Skip "button.examples": already exists "[...]/desktop.sets/button.examples/.bem/level.js"
Add --force to force creation.
При попытке выполнить bem make app/Resources/views/desktop.sets
. Вот так выглядит .bem/make.js
How to reproduce.
With bem-core:
npm i && bower-npm-install
bem server
Open http://localhost:8080/desktop.specs/i-bem/spec-js+browser-js+bemhtml/_spec-js+browser-js+bemhtml.html
in browser. See the blank page instead of mocha's test's results.
please look on this line
https://github.com/narqo/bem-pr/blob/master/spec.blocks/spec/spec.bh.js#L4
should be
module.exports = function(bh) {
bh.match('spec', function() {
return { block : 'mocha', attrs: { id: 'mocha' } };
});
};
We should split our current examples into two parts: so called "examples for documentation" and "examples for functional testing".
First part (current <block>.examples
) will be used to show block's functionality which is interesting for users. Second part would consists of development specific cases of usage of the block.
Как воспроизвести:
git clone [email protected]:bem/bem-controls.git
cd bem-controls
git co -b issues/113@v2
npm install
bem make vendor
bem make desktop.sets/input__clear.tests/default
// работаетbem make touch-pad.sets/input__clear.tests/default
// не работаетПри этом есть оба файла:
desktop.blocks/input/__clear/input__clear.test.js
touch.blocks/input/__clear/input__clear.test.js
Из bem/bem-core#150 \cc @dfilatov @veged
Есть желание, мочь точечно собирать только некоторые куски сета: примеры, тесты, (документацию). И, подозреваю, что скорее, даже «хочется» собирать отдельные куски всех сетов (› bem make tests
).
Но я не очень понимаю, как это «правильнее» реализовать.
Есть два варианта
desktop.sets/tests
Вариант хреновый: виртуальные цели в БЭМ-мире сложно программировать, потому что непонятно, какие именно тесты имеются ввиду: у нас есть технологии tests
, test.js
, test.js+browser.js+bemhtml
(а будут еще) и они все задекларированны на уровнях, но имееют пересекающиеся суффиксы.
...и тупо возвращать разный набор собираемых для сета технологий, в зависимости от внешних факторов, например, переменной окружения.
› SETS_TECHS=tests.js bem make sets
соберутся все сеты, но только в технологии tests.js
Что скажете? Или встречу собирать? ;)
Проблема решается указанием жесткой зависимости "phantomjs": "1.9.0-6"
Текущий лог при установке:
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
npm http 200 https://registry.npmjs.org/proto-list/-/proto-list-1.2.2.tgz
> [email protected] install /Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs
> node install.js
Downloading http://phantomjs.googlecode.com/files/phantomjs-1.9.1-macosx.zip
Saving to /var/folders/54/bmytzkfn4gv2pk260wgb838m0000gp/T/phantomjs/phantomjs-1.9.1-macosx.zip
Receiving...
{
Received 783K...
Received 1566K...
Received 2348K...
Received 3132K...
Received 3913K...
Received 4696K...
Received 5479K...
Received 6261K...
Received 7044K...
Received 7849K...
Received 8631K...
Received 9416K...
Received 10198K...
Received 10978K total.
Extracting zip contents
Renaming extracted folder /var/folders/54/bmytzkfn4gv2pk260wgb838m0000gp/T/phantomjs/phantomjs-1.9.0-macosx -> /Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/lib/phantom
Phantom installation failed Error: ENOENT, no such file or directory '/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/lib/phantom/bin/phantomjs'
at Object.fs.statSync (fs.js:684:18)
at fixFilePermissions (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/install.js:220:19)
at Promise._successFn (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/install.js:72:12)
at Promise._withInput (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/kew/kew.js:204:25)
at Promise.resolve (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/kew/kew.js:92:25)
at resolver (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/kew/kew.js:264:17)
at cb (/Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/ncp/lib/ncp.js:217:38)
at /Users/tadatuta/Sites/bem-core/libs/bem-pr/node_modules/phantomjs/node_modules/ncp/lib/ncp.js:142:14
at Object.oncomplete (fs.js:107:15)
npm ERR! weird error 1
npm ERR! not ok code 0
at ChildProcess.<anonymous> (/Users/tadatuta/Sites/bem-core/node_modules/bem/lib/util.js:783:18)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at Process.ChildProcess._handle.onexit (child_process.js:789:12)
From previous event:
at /Users/tadatuta/Sites/bem-core/node_modules/bem/node_modules/q/q.js:1223:17
at Array.reduce (native)
at /Users/tadatuta/Sites/bem-core/node_modules/bem/node_modules/q/q.js:1216:9
at /Users/tadatuta/Sites/bem-core/node_modules/bem/node_modules/q/q.js:854:23
Узел <...>/all.tests/default*
должен создавать только если в наборе указана сборка тестов.
Сейчас, если проект хочет собирать только примеры, ему все равно нужно декларировать у себя технологии test-tmp
и пр., иначе сборка будет «валиться» с '"default.tech" is already exists'
\cc @mishaberezin
Нам нужно что-нибудь, чтобы сравнивать пары bemjson / html.
В bem-pr 0.0.5 вроде бы работает, но с ошибками типа
borschik: Error: ENOENT, no such file or directory '/Users/gela-d/Sites/islands-page/touch-phone.sets/arrow.examples/10-arrow-search/10-arrow-search.bemhtml'
В 0.1.0 он просто падает при попытке сборки.
Current bundled version of mocha (1.12.0) has a bug in CSS (mochajs/mocha#970).
One should update to current stable release, which is 1.17.0
Techs:
*.test.vanilla.js
*.test.node.js
Also *.test.browser.js
as alias for *.test.js
.
При попытке выполнить тесты локально на Mac OS X:
$ node -v
v0.8.14
$ npm -v
1.1.65
$ bem -v
0.5.33
$ bem make desktop.sets/input.tests/01-test
...
16:45:04.493 - info: [i] Page was sent to Phantom (/Users/rudeshko/dev/serp/contrib/islands-search/desktop.sets/input.tests/01-test/01-test.phantomjs)
------------------------------
Tests results for: /Users/rudeshko/dev/serp/contrib/islands-search/desktop.sets/input.tests/01-test
error: Error: Command failed:
------------------------------
16:45:04.728 - info: [t] Build time for "desktop.sets/input.tests/01-test/01-test.phantomjs" [4]: 472ms
*************************************************
WARNING! There are 1 unfinished build processes!
This application exit is not planned. Please check that all nodes in arch resolve or reject promises they return.
Dump of plans of unfinished build processes follow.
Plan(4) for targets: desktop.sets/input.tests/01-test
Plan[4]:
__plan_root__
desktop.sets/input.tests/01-test
Jobs: desktop.sets/input.tests/01-test
Active jobs:
*************************************************
In general tests
are simple examples
, which could be used in functional testing
Сейчас testContent
(https://github.com/narqo/bem-pr/blob/v0.2/bem/nodes/tests.js#L52) формируется как фрагмент в формате deps
, т.е. для модификатора будет { block: 'b', elem: 'e', mod: 'm', val: 'v' }
. А используется это внутри bemjson -- поэтому должно быть фрагментом bemjson: { block: 'b', elem: 'e', mods: { m: 'v' } }
.
Сейчас технология валидируется только по файлам test.js
и только по основной декларации -- в итоге не работает пересборка при изменении js
и/или bemhtml
файлов.
Судя по https://github.com/bem/bem-tools/blob/master/lib/nodes/build.js#L356 можно подменить transformBuildDecl
и добавить в getSuffixes
суффиксы всех трёх технологий. Это приведёт к несколько избыточной инвалидации, то это лучше чем недоинвалидация.
Невозможно собрать тестовый бандл, если название тестового бандла совпадает с именем элемента (block__elem.bemjson.js
).
См. b2bf835
Из bemjson нельзя получить deps.js прямым преобразованием. Нужно сначало получать bemdecl.js, потом deps.js.
// bemjson.js
{ block: 'jquery',
elem: 'event',
elemMods: { type: 'pointerclick' } }
// bemdecl.js
{ block: 'jquery',
elem: 'event',
mods: [
{ name: 'type', val: 'pointerclick' }
] }
\cc @dfilatov
\cc @veged @arikon @mishaberezin @dfilatov
Мы как-то обсуждали, что суффикс .sets
неправилey, потому что desktop.sets
, по-факту, это один набор "desktop".
Я хочу исправить это в 0.1.0 над которой сейчас работаю. Есть принципиальные возражения (кроме того, что это обратно не совместимые изменения, которые сломают все у всех)?
Итоговая структура будет:
PRJ/
desktop.blocks/
desktop.set/
button.examples/
10-simple/
all.tests/
default/
button.tests/
10-simple/
touch-pad.set/
[...]
Где-то между 0.0.5 и 0.0.9, что-то сломалось и теперь «холодная» сборка примеров в bem-gen-doc падает.
Очевидно, где-то в bem/nodes/sets.js
не резолвится вовремя какой-то промис. Такую же штуку я ловил, когда пытался сделать пример для проекта.
Воспроизвести в bem-gen-doc
:
› bem make -r example site
Лог ошибки:
*************************************************
WARNING! There are 1 unfinished build processes!
This application exit is not planned. Please check that all nodes in arch resolve or reject promises they return.
Dump of plans of unfinished build processes follow.
Plan(1) for targets: site
Plan[1]:
__plan_root__
site
release/examples/examples.sets/b-form-button__click.examples/link
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/_link.bemhtml.js
release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.css
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.css.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/_link.css
release/examples/examples.sets/b-form-button__click.examples/link/link.css
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.css.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/_link.js
release/examples/examples.sets/b-form-button__click.examples/link/link.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.html
release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.js
release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.bemhtml.meta.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js
release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/_disabled.bemhtml.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/_disabled.css
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.css.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/_disabled.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.html
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.bemhtml.meta.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js
release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/_submit.bemhtml.js
release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.css
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.css.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/_submit.css
release/examples/examples.sets/b-form-button.examples/submit/submit.css
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.css.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/_submit.js
release/examples/examples.sets/b-form-button.examples/submit/submit.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.html
release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.js
release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.bemhtml.meta.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js
release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
Jobs:
Active jobs: release/examples/examples.sets/b-form-button__click.examples/link/link.deps.js.meta.js, release/examples/examples.sets/b-form-button_disabled_yes.examples/disabled/disabled.deps.js.meta.js, release/examples/examples.sets/b-form-button.examples/submit/submit.deps.js.meta.js
*************************************************
It seems that tests fail because of lots of child process with mocha-phantom which we run for every spec.
18:59:38.177 - error: Tests failed killed=false, code=255, signal=null
Error: Command failed:
at ChildProcess.exithandler (child_process.js:637:15)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:735:16)
at Socket.<anonymous> (child_process.js:948:11)
at Socket.EventEmitter.emit (events.js:95:17)
at Pipe.close (net.js:466:12)
Index: ../../prjs/bem-controls/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- ../../prjs/bem-controls/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js (revision )
+++ ../../prjs/bem-controls/libs/bem-pr/bem/techs/spec.js+browser.js+bemhtml.js (revision )
@@ -20,11 +20,22 @@
return ctxOpts.declaration
.then(function(decl) {
var specJsResults = _this.getTechBuildResults('spec.js', decl, context, output, opts),
- browserJsResults = _this.getTechBuildResults('browser.js', decl, context, output, opts),
bemhtmlDecl = new DEPS.Deps(),
depsByTechs = decl.depsByTechs || {},
depsByTechsJs = depsByTechs.js || {},
- depsByTechsSpecJs = depsByTechs['spec.js'] || {};
+ depsByTechsSpecJs = depsByTechs['spec.js'] || {},
+ browserJsDecl = (new DEPS.Deps())
+ .parse(decl.deps)
+ .parse(depsByTechsSpecJs.js.map(function(i) {
+ delete i.tech;
+ return i;
+ })),
+ browserJsResults = _this.getTechBuildResults(
+ 'browser.js',
+ { deps : (browserJsDecl.serialize()[''] || {})[''] || [] },
+ context,
+ output,
+ opts);
bemhtmlDecl.parse(depsByTechsJs.bemhtml || []);
bemhtmlDecl.parse(depsByTechsSpecJs.bemhtml || []);
We could use Istanbul to generate information about code coverage.
› ISTANBUL_COVERAGE=yes bem make desktop.specs/button
...
› istanbul report html
Под bem-tools 0.6.x неполучается собрать примеры для модификаторов/элементов: GeneratedLevelNode#scanSources()
их не находит.
Кажется, проблема в изменившейся логике интроспекции уровней в [email protected]
With recent changes in v0.3
branch, there is an error during i-bem__dom
(bem-core) testing process:
Tests results for: /Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default
stdout:
i-bem__dom
getMod
✓ should return properly extracted mod from html
getMods
✓ should return properly extracted block mods from html
✓ should return properly extracted elem mods from html
setMod
✓ should properly set CSS classes
elemify
1) "before each" hook
✖ 1 of 17 tests failed:
1) i-bem__dom elemify "before each" hook:
TypeError: 'undefined' is not an object (evaluating 'domNode.onclick')
at extractParams (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:16137)
at getParams (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:16127)
at initBlock (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:16056)
at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:17434
at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:17932
at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:5936
at next (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:6200)
at file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:6204
at timeslice (file:///Users/varankinv/webs/bem-core/desktop.sets/i-bem__dom.tests/default/_default.test.js:7176)
PRJ/
.bem/level.js => simple
<имя сета>.site/
<имя сета>.site.bemjson.js
<имя сета>.site.css
<имя сета>.site.js
<имя сета>.site.html
block1/
block1.html (использует <имя сета>.site.{js,css})
block1.jsdoc.html (← использут <имя сета>.jsdoc/block1.jsdoc.json в качестве источника данных)
Чекаучу bem-core@v1
Запускаю
bem make desktop.sets/events.tests/default
Получаю:
...
17:02:41.805 - info: [*] make 'desktop.sets/events.tests' [4]
Skip "events.tests": already exists "/Users/dfilatov/prjs/bem-core/desktop.sets/events.tests"
Add --force to force creation.
...
В итоге, тест первый раз все-таки собирается, а при повторных попытках результирующий файл не пересобирается.
У каждой БЭМ-сущности может быть своя часть документаци, которую нужно собирать в наборе, на равне примерам.
Например
blocks/blah/
__lem/
blah__lem.md
blah.md
В рельтирующем наборе, документацию блока blah
должна «собраться» в один .md-файл.
One should try to provide ability to write specs in more universal way. So bem-pr could be used in libraries like bem-bl, where no ym is used.
After the #77 has been done, we could add some special tech for bem-make, to generate coverage report.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.