Open Guria opened 9 years ago
/cc @blond
@Guria, если совсем вкратце, то само по себе ENB умеет собирать только ноды, которые уже есть на файловой системе, и не умеет ноды, которые могут появляться в процессе сборки.
Для того, чтобы это стало возможным был написан enb-magic-fatory. Если нужно подробнее — можно попробовать разобраться по jsdoc внутри, или спрашивать тут.
А enb-magic-platform
это тот же make
+ server
из ENB, но который умеет работать со специальными __magic__
тасками, а если надо деградировать до обычных задач сборки.
enb-magic-fatory
используется в пакетах, где нужно собирать сеты (sets), а именно в:
enb-bem-examples
enb-bem-specs
enb-bem-tmpl-specs
enb-bem-docs
. Поэтому enb-magic-platform
нужен там, где используются эти пакеты.
Как минимум enb-bem-specs
, enb-bem-tmpl-specs
было желание использовать.
Придётся разбираться, хотя пока не очень легко даётся.
@Guria Для того, чтобы использовать enb-bem-specs
и enb-bem-tmpl-specs
— разбираться в enb-magic-*
пакетах не нужно.
Как использовать:
$ magic --help
ENB magic platform
Usage:
magic COMMAND [OPTIONS] [ARGS]
magic [OPTIONS] [ARGS]
Commands:
make : build specified targets
run : run specified tasks
server : run development server
Options:
-h, --help : Help
-v, --version : version
ENB умеет собирать только ноды, которые уже есть на файловой системе, и не умеет ноды, которые могут появляться в процессе сборки.
@blond, а когда я в make объявляю технологию с выходом в таргет N и технологию, для которой вход - это N, а выход - M - это разве не сборка нод, которые появляются в процессе сборки? Или я что-то неправильно понимаю?
@apsavin, ты говоришь о сборке таргетов в рамках уже существующей ноды. И какие ноды, и какие таргеты будут в итоге известно до момента сборки.
Речь, о:
Пример, из жизни:
Но, если в консоли написать следующее:
$ magic make desktop.examples/button/kv8lnJvLGr2co198HaREk26qsgQ/kv8lnJvLGr2co198HaREk26qsgQ.bemjson.js
То всё хорошо соберётся:
desktop.examples/
button/
kv8lnJvLGr2co198HaREk26qsgQ/kv8lnJvLGr2co198HaREk26qsgQ.bemjson.js
Если при этом в make.js
задекларировать сборку нод *.examples/*/*
как сборку обычных страниц, то в примерах соберётся не только BEMJSON, но и HTML, css, js и т.д.
Понятно, спасибо. В самом деле magic.
@blond enb-bem-specs
и enb-bem-tmpl-specs
поставляются со своим nodeconfigurator
. Можно ли использовать эти модули если у меня процесс сборки немного отличается?
Подозреваю, что для enb-bem-tmpl-specs
можно, а для enb-bem-specs
нельзя.
@Guria, но уточни, пожалуйста, в чём нужна кастомизация.
Продолжаю погружение. Давно мучает вопрос, что именно делает enb-magic-platform. Какова его роль в bem-core/bem-components. Должен ли я его хотеть для своей библиотеки.