nicothin / NTH-start-project

Startkit for HTML / CSS / JS pages layout.
https://nicothin.pro/NTH-start-project/blocks-demo.html
Do What The F*ck You Want To Public License
616 stars 214 forks source link

В createBlock добавлена возможность создавать элементы и модификаторы #90

Closed RokeAlvo closed 5 years ago

RokeAlvo commented 5 years ago

Добавил возможность создавать не только блоки, но и элементы и модификаторы. Теперь при вызове ./createBlock.js block-name__element-name--mod-name--mod-value будет создана папка src/blocks/block-name/__element-name/--mod-name/--mod и в ней соответствующие технологии --mod.*** Добавил в конфиг поле 'bemModSeparator': '_', в скрипте createBlock, если в конфиге нет этого поля, по умолчанию используется "--" Добавил в конфиг поле 'defaultExtensions': ['scss', 'img', 'bg-img'], в скрипте, если нет этого поля, используется старое значение

DennisLypovetsky commented 5 years ago

Денис Липовецкий понравилось ваше письмо

npofopr commented 5 years ago

Любопытства ради, исключительно для себя, вам реально с этим удобно? Вот так вот делить блоки на более мелкие составляющие? Или сейчас так в тренде? :-)

RokeAlvo commented 5 years ago
  1. Вот создали мы все эти мелкие файлы, а как их потом брать в сборку? Мой автомат сейчас возьмет только файлы блоков, файлы элементов и модификаторов просто проигнорируются.

да, поторопился, проверил, что html собирается, а на css и img не посмотрел - дополню.

2. Удобство написания стилей каждого элемента в отдельном файле считаю невероятно сомнительным. Платить постоянным созданием новых файлов за возможность убрать из результирующего css/js полкилобайта...

тут кому как удобней, можно и так и так: https://ru.bem.info/methodology/filestructure/#схемы

RokeAlvo commented 5 years ago

Любопытства ради, исключительно для себя, вам реально с этим удобно? Вот так вот делить блоки на более мелкие составляющие? Или сейчас так в тренде? :-)

по мне так очень удобно: например, делаем сайт, у него 5 страниц- не пишем же все в одном файле, каждой странице свой файл. Страницу разбили на компоненты (шапка, правая панель, левая, мейн, подвал) и каждая из компонент хранится отдельно и можно работать только с ней (а если команда работает). А уж на сколько мелко делить тут дело каждого, кому как удобней.

RokeAlvo commented 5 years ago

сильно не закидывайте помидорами - я git раньше не пользовался... package-lock.json не надо менять - дополнительных пакетов не используется изменения требуют только: createBlock.js - если не писать в имени создаваемого блока __и -- отработает как раньше, gulpfile.js - сборку css, img поправлю, естественно должна быть совместимость со старыми проектами, config.js - если использовать старый, все будет работать как раньше, добавленные поля только для расширенной настройки( возможность задать технологии по умолчанию и разделитель)

nicothin commented 5 years ago

будет создана папка src/blocks/block-name/__element-name/--mod-name/--mod и в ней соответствующие технологии --mod.***

поясните, какая ФС будет создана?

RokeAlvo commented 5 years ago

Что значит ФС?

nicothin commented 5 years ago

файловая система

RokeAlvo commented 5 years ago

будет создана папка src/blocks/block-name/__element-name/--mod-name/--mod и в ней соответствующие технологии --mod.***

поясните, какая ФС будет создана?

blocks/
      block-name/
                   __element-name/
                                      --mod-name/
                                                      --mod/
                                                             --mod.scss
                                                              --mod.js  

если дальше вызывать с block-name__element2-name, то в итоге получится

blocks/
      block-name/
                   __element-name/
                                      --mod-name/
                                                      --mod/
                                                             --mod.scss
                                                              --mod.js  

                   __element2-name/
                                   __element2-name.scss
                                   __element2-name.js
RokeAlvo commented 5 years ago

сборку вроде допилил - осталось проверить как на старом проекте себя поведет (все ли будет собирать)