UNPKG

enb-bem-techs-2x

Version:
292 lines (200 loc) 17.2 kB
История изменений ================= 2.2.2 ----- ### Исправления ошибок * Исправлено кэширование в технологии `levels-to-bemdecl` (@L0stSoul [#255]). * Исправлена схема уровней `levels-plain`: не работала с `enb@1.x` (@dmkova [#250]). * Исправлена технология `provide-deps`: должна поддерживать зависимости в формате массива (@dmkova [#251]). [#255]: https://github.com/enb/enb-bem-techs/pull/255 [#251]: https://github.com/enb/enb-bem-techs/pull/251 [#250]: https://github.com/enb/enb-bem-techs/pull/250 ### Зависимости * Модуль `bem-naming@0.5.1` обновлен до версии `1.0.1`. * Модуль `inherit@2.2.3` обновлен до версии `2.2.6`. * Модуль `js-yaml@3.5.2` обновлен до версии `3.7.0`. * Модуль `vow@0.4.12` обновлен до версии `0.4.13`. ### Остальное * Пакет `enb-bem-techs` переехал в организацию [enb](https://github.com/enb) (@blond [240dbd4]). * Небольшие исправления документации: * [6d1d7b4](https://github.com/enb/enb-bem-techs/commit/6d1d7b43ba98a10b8228c88e4c703fcbe4f008ed) (@vithar) * [0ae5234](https://github.com/enb/enb-bem-techs/commit/0ae5234e37e6a723757312e63a700a56eed44110) (@mikhailrojo) * [7d5c190](https://github.com/enb/enb-bem-techs/commit/7d5c19087e7028b3e2658d52624362a948533335) (@versus-stack) * [b890390](https://github.com/enb/enb-bem-techs/commit/b890390c8b62df2c8c81b08920d762ee905ef55b) (@blond) [240dbd4]: https://github.com/enb/enb-bem-techs/commit/240dbd401ec19d7c961308acceab7a6f98c565ea 2.2.1 ----- ### Исправления ошибок Исправлена работа технологии `deps-by-tech-to-bemdecl`: * Неправильно учитывался контекст БЭМ-сущности по имени файла ([#201]). 2.2.0 ----- ### Опции Для технологий `levels-to-bemdecl`, `bemjson-to-bemdecl` и `deps-by-tech-to-bemdecl` добавлена опция [bemdeclFormat](docs/api.ru.md#bemdeclformat). Опция позволяет возвращать результат не только в стандартном BEMDECL-формате, но и формате результата `deps` и `depsOld` технологий. Пример BEMDECL-формата: ```js { blocks: [{ name: 'b', elems: [{ name: 'e', mods: [{ name: 'm', vals: [{ name: 'v' }] }] }] }]} ``` Пример DEPS-формата: ```js { deps: [{ block: 'b', elem: 'e', mod: 'm', val: 'v' }] } ``` **Важно:** DEPS-формат позволяет выражать декларации, в которые может входить элемент без своего блока и модификатор без своего блока или элемента. Это может быть необходимо при сборке бандлов, которые будут догружаться в браузере. 2.1.1 ----- ### Исправления ошибок Исправлена работа технологии `deps-by-tech-to-bemdecl`: * Не учитывался контекст БЭМ-сущности по имени файла ([#191]). * Некорректно обрабатывалась короткая запись для булевых модификаторов ([#192]). ### Зависимости * Модуль `enb-async-require@1.0.0` обновлен до версии `1.0.1`. * Модуль `enb-require-or-eval@1.0.1` обновлен до версии `1.0.2`. * Модуль `inherit@2.2.2` обновлен до версии `2.2.3`: возможность подменять метод `__base()` при тестировании. * Модуль `js-yaml@3.4.2` обновлен до версии `3.5.2`. * Модуль `vow@0.4.11` обновлен до версии `0.4.12`. 2.1.0 ----- ### Крупные изменения * Добавлена поддержка `enb` версии `1.x` ([#185]). ### Зависимости * Модуль `js-yaml@3.4.0` обновлен до версии `3.4.2`. * Модуль `vow@0.4.10` обновлен до версии `0.4.11`. 2.0.1 ----- ### Исправления ошибок * Исправлена технология `files`: в списках файлов появлялись дубликаты, если уровень переопределения находился в директории другого уровня ([#179]). ### Зависимости * Модуль `js-yaml@3.3.1` обновлен до версии `3.4.0`. 2.0.0 ----- **Важно:** ознакомтесь с [руководством по переходу на версию `2.0.0`](MIGRATION-2.md). ### Технология `files` [ __*major*__ ] Исправлен порядок файлов, возвращаемый для нескольких суффиксов: * Файлы должны быть отсортированы сперва по имени сущности, и только потом по суффиксу ([#129]). * Файлы должны быть отсортированы сперва по уровню, и только потом по суффиксу ([#156]). ### Технология `deps-old` * [ __*major*__ ] Исправлена ошибка раскрытия `must`-зависимостей ([#175]). Алгоритм раскрытия зависимостей был полностью переписан. * Добавлена опция [strict](docs/api.ru.md#strict), которая включает строгий режим раскрытия зависимостей. * Теперь в консоль выводятся предупреждения о циклических `must`-зависимостях. ### Технология `deps` * Исправлена ошибка, из-за которой невозможно было задать `must`-зависимость модификатору от своего блока ([#148]). ### Формат `deps.js` В чтении и обработке `deps.js`-файлов исправлены следующие ошибки: * Не учитывались элементы, переданные в виде массива в поле `elem` ([#136]). * Не учитывались булевые модификаторы, переданные в виде массива строк ([#113]). * Не учитывался контекст блока для его элементов и модификаторов ([#112]). * Исправлена обработка пустых `deps.js`-файлов ([#151]). ### Технология `merge-bemdecl` * Исправлено объединение деклараций: не учитывались модификаторы без значения ([#116]). ### Технология `subtract-deps` * Исправлена обработка опций `from` и `what`: не раскрывался `?` в названии таргета ([#128]). ### Зависимости * Модуль `js-yaml@3.2.7` обновлен до версии `3.3.1`. * Модуль `vow@0.4.8` обновлен до версии `0.4.10`. 1.0.4 ----- ### Исправления ошибок Исправлена ошибка, из-за которой невозможно было представить декларацию БЭМ-сущностей в DEPS-формате в виде массива ([#107]). Актуально для технологий, ожидающих или возвращающих декларацию в формате принятом в `enb@0.13.x`. Ошибки могли возникать в двух случаях: 1. Если базовые технологии получали на вход декларации, построенные с помощью сторонних технологий. 2. Если сторонние технологии получали на вход декларации, построенные с помощью базовых технологий. Исправления были внесены в следующие технологии: * `deps` * `deps-old` * `files` * `merge-deps` * `subtract-deps` ### Также в релиз вошли следующие изменения * Добавлена поддержка `Node.js` версии `0.12`. * Добавлена поддержка `io.js`. * Модуль `js-yaml@3.2.5` обновлён до версии `3.2.7`. 1.0.3 ----- ### Исправления ошибок * Исправлена технология `levels-to-bemdecl`: не правильно строился BEMDECL для булевых модификаторов ([#103]). ### Также в релиз вошли следующие изменения * Модуль `vow@0.4.7` обновлён до версии `0.4.8`. 1.0.2 ----- ### Исправления ошибок * Исправлены технологии `merge-bemdecl` и `merge-deps`: ошибка возникала при отсутствии результирующего файла до начала сборки ([#99]). ### Также в релиз вошли следующие изменения * Модуль `bem-naming@0.5.0` обновлён до версии `0.5.1`. 1.0.1 ----- ### Исправления ошибок * Для технологии `deps-merge` возвращена возможность объединять BEMDECL-файлы с DEPS-файлами ([#94]). * Исправлено кэширование для следующих технологий: `merge-deps`, `merge-bemdecl` и `deps-by-tech-to-bemdecl` ([#93], [#97]). ### Также в релиз вошли следующие изменения * Модуль `bem-naming@0.4.0` обновлён до версии `0.5.0`. * Модуль `js-yaml@3.2.3` обновлён до версии `3.2.5`. 1.0.0 ----- Для версии `1.0.0` история изменений описана по отношению к пакету `enb@0.13.x`. ### Изменения, ломающие обратную совместимость * Удалена вся логика, связанная с `BEViS` методологией. * Технологии `bemjson-to-bemdecl`, `deps-by-tech-to-bemdecl`, `merge-bemdecl` и `provide-bemdecl` теперь предоставляют результат в `bemdecl` формате, вместо `deps` формата. * Технологии `merge-bemdecl` и `provide-bemdecl` теперь ожидает исходные таргеты в `bemdecl` формате, вместо `deps` формата. ### Крупные изменения * Модуль экспортирует все предоставляемые технологии ([#70]). * Добавлена `levels-to-bemdecl` технология ([#41]). * Опция `levels` из `levels` технологии теперь может принимать пути относительно корня, вместо абсолютных ([#10]). * Опция `destTech` из `deps-by-tech-to-bemdecl` технологии теперь не является обязательной ([#67]). ### API технологий * Технология `bemdecl-from-bemjson` переименована в `bemjson-to-bemdecl`. * Технология `bemdecl-from-deps-by-tech.js` переименована в `deps-by-tech-to-bemdecl`. * Технология `bemdecl-merge` переименована в `merge-bemdecl`. * Технология `deps-merge` переименована в `merge-deps`. * Технология `deps-subtract` переименована в `subtract-deps`. * Технология `bemdecl-provider` переименована в `provide-bemdecl`. * Технология `deps-provider` переименована в `provide-deps`. * Опции `sourceTarget` и `destTarget` из `bemdecl-from-bemjson` технологии объявлены **deprecated**, вместо них следует использовать `source` и `target` соответственно. * Опции `bemdeclSources` и `bemdeclTarget` из `merge-bemdecl` технологии объявлены **deprecated**, вместо них следует использовать `sources` и `target` соответственно. * Опции `sourceNodePath`, `sourceTarget` и `bemdeclTarget` из `provide-bemdecl` технологии объявлены **deprecated**, вместо них следует использовать `node`, `source` и `target` соответственно. * Опции `bemdeclTarget` и `depsTarget` из `deps` технологии объявлены **deprecated**, вместо них следует использовать `bemdeclFile` и `target` соответственно. * Опции `depsSources` и `depsTarget` из `merge-deps` технологии объявлены **deprecated**, вместо них следует использовать `sources` и `target` соответственно. * Опции `bemdeclTarget` и `depsTarget` из `deps-old` технологии объявлены **deprecated**, вместо них следует использовать `bemdeclFile` и `target` соответственно. * Опции `sourceNodePath`, `sourceTarget` и `depsTarget` из `provide-deps` технологии объявлены **deprecated**, вместо них следует использовать `node`, `source` и `target` соответственно. * Опции `subtractFromTarget`, `subtractWhatTarget` и `depsTarget` из `subtract-deps` технологии объявлены **deprecated**, вместо них следует использовать `from`, `what` и `target` соответственно. * Опция `depsTarget` из `files` технологии объявлена **deprecated**, вместо неё следует использовать `depsFile`. ### Исправления ошибок * Исправлена ошибка в `deps` и `deps-old` технологиях, из-за которой было невозможно выразить булевый модификатор со значением `true` в `deps` формате. * Исправлена ошибка в `bemjson-to-bemdecl` технологии, связанная с `undefined` в `bemjson` формате. * Исправлена ошибка в `deps-by-tech-to-bemdecl` технологии, из-за которой поле `block` не подставлялось по контексту. * Исправлены ошибки при использовании в Windows. ### Также в релиз вошли следующие изменения * Улучшена документация технологий. * Добавлены руководства по сборке бандлов, страниц и дистрибутивов. * Добавлены тесты для технологий. * Добавлены молульные тесты. * Добавлены тесты на производительность для сканера уровней. * Настроен запуск автотестов с помощью `appveyor` для Windows. * Добавлена зависимость от модуля `bem-naming` версии `0.4.0`. * Модуль `vow` обновлён до версии `0.4.7`. * Модуль `inherit` обновлён до версии `2.2.2`. * Модуль `js-yaml` обновлён до версии `3.2.3`. [#201]: https://github.com/enb/enb-bem-techs/issues/201 [#192]: https://github.com/enb/enb-bem-techs/issues/192 [#191]: https://github.com/enb/enb-bem-techs/issues/191 [#185]: https://github.com/enb/enb-bem-techs/pull/185 [#179]: https://github.com/enb/enb-bem-techs/issues/179 [#175]: https://github.com/enb/enb-bem-techs/issues/175 [#156]: https://github.com/enb/enb-bem-techs/issues/156 [#151]: https://github.com/enb/enb-bem-techs/issues/151 [#148]: https://github.com/enb/enb-bem-techs/issues/148 [#136]: https://github.com/enb/enb-bem-techs/issues/136 [#129]: https://github.com/enb/enb-bem-techs/issues/129 [#116]: https://github.com/enb/enb-bem-techs/issues/116 [#113]: https://github.com/enb/enb-bem-techs/issues/113 [#112]: https://github.com/enb/enb-bem-techs/issues/112 [#107]: https://github.com/enb/enb-bem-techs/issues/107 [#103]: https://github.com/enb/enb-bem-techs/issues/103 [#99]: https://github.com/enb/enb-bem-techs/issues/99 [#97]: https://github.com/enb/enb-bem-techs/issues/97 [#94]: https://github.com/enb/enb-bem-techs/issues/94 [#93]: https://github.com/enb/enb-bem-techs/issues/93 [#70]: https://github.com/enb/enb-bem-techs/issues/70 [#67]: https://github.com/enb/enb-bem-techs/issues/67 [#41]: https://github.com/enb/enb-bem-techs/issues/41 [#10]: https://github.com/enb/enb-bem-techs/issues/10