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

Вопрос: Как блоки берутся в сборку? #72

Closed npofopr closed 5 years ago

npofopr commented 5 years ago

Импорты файлов БЭМ-блоков, упомянутых в секции alwaysAddBlocks файла config.js. Таким образом, можно взять в сборку любой блок, даже если его css-класс не упоминается в разметке страниц.

Правильно понимаю,

  1. что если у меня создан Блок test и он подключен в секции alwaysAddBlocks,
  2. в стилях этого блока указан .test2 {...} т.е. класс отличается от названия блока
  3. то стили из этого блока должны подключаться на любой странице?

т.е. в конфиге подключен блок test, а на странице есть блок с классом .test2 В теории, стили должны подключиться?)

nicothin commented 5 years ago

В стилях блока test не может быть класса .test2. Один Блок = один файл. Какие селекторы взяты в сборку можно смотреть в build/css/ в стилевом файле.

Если хоть на одной странице есть селектор .test2, при сборке стилей будет искаться src/blocks/test2/test2.scss и, если существует, будет взят в сборку. Если в конфиге указано брать блок test, при сборке стилей будет искаться src/blocks/test/test.scss и, если существует, будет взят в сборку. После редактирования конфига нужно перезапускать автоматику.

npofopr commented 5 years ago

Если в конфиге указано брать блок test, при сборку стилей будет искаться src/blocks/test/test.scss и, если существует, будет взят в сборку.

Ну а мне ведь ничего не мешает прописать класс .test2 {...} в файле test.scss

Вопрос собственно с тем, что в конфиге указываю брать блок test , но стили для .test2 из него не подхватываются. Так и должно быть?

nicothin commented 5 years ago

Ну а мне ведь ничего не мешает прописать класс .test2 {...} в файле test.scss

Неочевидность. Сложнее найти место редактирования. Линтер должен ругаться.

Нет, не должно. Если блок взят в сборку стилей и в его файле есть даже такой некошегно-нехаляльный селектор, оный селектор всё равно должен попась в css-файл.

npofopr commented 5 years ago

Ну вот собственно не попадает. Просто создаю блок test , содержимое:

.test {
  $block-name: &; // #{$block-name}__element
}
.test2 {
  color: pink;
}

в index.pug добавляю:

div.test2
    p test test style

Ну и собственно в конфиге добавлено:

"alwaysAddBlocks": [
    "test",
  ],
nicothin commented 5 years ago

Должно работать. Ссылку на репозиторий с этим кодом дайте.

npofopr commented 5 years ago

Ссылка

nicothin commented 5 years ago

https://github.com/nicothin/NTH-start-project/commit/4bc3e3e173af836c8858ab3052f6e08aa356aa4c