-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Обсуждение bem-deps #10
Comments
Раз уж речь о депсах, я бы предложил разделить необходимость подключения зависимости и порядок включения. Как уже замечали, {
deps: [
{block: 'a'},
{block: 'b'}
],
includeBefore: [
{block: 'b'},
{block: 'c'}
]
} |
Вместо
Можно посмотреть на TaffyDB, можно придумать более специфичную для нас структуру хранения данных. |
@SevInf Про Типовые задачи:
Был недавно ещё топик про то, что при сборке бандла |
Тут пока затрудняюсь хорошо ответить. Возможно, какой-то параметр вроде .query({tech: 'ie.css', skip: {block: 'noie'}}); |
Не смог осмыслить почему так. |
Посмотрел на deps-resolver из Понять, как оно используется можно из кода технологии deps.js. Особенности реализации:
Есть ещё набор хелперов для работы с зависимостями в модуле lib/deps/deps.js. Зависимости по технологиям реализованы в отдельной технологии bemdecl-from-deps-by-tech. Идея там в том, что перебираются все файлы зависимостей из |
Может, лучше Чтобы задать и зависимость, и приоритет, нужно будет определить сущность в двух списках. Может, стоит предусмотреть дополнительное поле |
@SevInf Добавил входной формат в issue description. Норм? |
|
high-priority, foremost, primary, essential, important? |
@veged в старой переписке предлагал замечания к этому варианты возникли такие:
Еще варианты из переписки: link + linkBefore |
preceding |
Предложение priority должен иметь цифровое значение (0, 1, 2...10), если он не указан то вычисляется подобно тому как это сделано в |
@ilyar что будет означать, например, |
@ilyar |
в Вероятно, я не до конца понимаю какую задачу решает |
Возможно будет полезен наш опыт по приоритезации БЭМ-сущностей, для подключения зависимостей в правильном порядке. Сразу прошу прощенья, если не в кассу :) |
Мы обсуждали и пришли к тому, что |
@veged, по-моему, |
ну если все считают, что это понятнее, чем |
Обязанности
bem-deps
Архитектура
bem-deps
Класс
DepsContainer
Контейнер для инкрементального накопления зависимостей.
Методы инстанса:
add(deps)
— добавляет информацию о зависимостях в контейнер;deps
— чанк, описывающий зависимости в унифицированном форматеserialize()
— сериализует информацию в унифицированный форматforEach()
— хелпер, позволяющий получить необходимое подмножество из объектной модели зависимостейСтатические методы:
deserialize()
— фабрика, создаёт инстансDepsContainer
из сериализованного форматаФормат для хранения зависимостей
TBD
Формат для накопления зависимостей
Хелперы для парсинга зависимостей из исходников
Базовый класс DepsParser()
Абстрактный класс, задаёт интерфейс для парсеров зависимостей.
Класс DepsJsParser()
Парсер исходных файлов
deps.js
.Класс DepsYmlParser()
Парсер исходных файлов
deps.yaml
.Класс YmParser()
Парсер исходных
js
файлов, использующих модульную системуym
. Полезен при условии, что имена модулей однозначно соответствуют описываемых в них БЭМ-сущностям.Утилиты
Утилиты возвращают новый инстанс
DepsContainer
с вычисленными зависимостями:subtract(source, subtraction...)
merge(source...)
intersect(source...)
The text was updated successfully, but these errors were encountered: