enb
Version:
Faster BEM/BEViS assembler
705 lines (472 loc) • 26.4 kB
Markdown
История изменений
=================
1.5.1
-----
### Исправления ошибок
* Профайлер не должен запускаться по умолчанию (@blond [#535]).
* Сборка не должна завершаться с ошибкой из-за неправильных расчётов в профайлере (@blond [#536]).
[#535]: https://github.com/enb/enb/issues/535
[#536]: https://github.com/enb/enb/issues/536
1.5.0
-----
### Опции
* Добавлена опция `build-info-file` (@blond [#534]).
В JSON-файл будет записана вся информация о сборке, всё то, что возвращает ENB через JS API.
**Пример**
```shell
$ enb make --profiler --built-info-output='build-info.json'
```
В файл `build-info.json` будет записано время работы технологий и время сборки каждого таргета.
[#534]: https://github.com/enb/enb/issues/534
### Зависимости
* Модуль `vow@0.4.12` обновлен до версии `0.4.13`.
* Модуль `lodash@4.16.4` обновлен до версии `4.16.6`.
1.4.1
-----
### Исправления ошибок
* Исправлена ошибка сборки через API в режиме профейлера, если не была указана опция `profilerPercentiles` (@blond [#516]).
[#516]: https://github.com/enb/enb/issues/516
### Зависимости
* Модуль `glob@7.0.6` обновлен до версии `7.1.1`.
* Модуль `inherit@2.2.5` обновлен до версии `2.2.6`.
* Модуль `connect@3.4.1` обновлен до версии `3.5.0`.
* Модуль `lodash@4.15.0` обновлен до версии `4.16.4`.
1.4.0
-----
### Profiler
Добавлен `profiler` для таргетов и технологий (@blond, @timofey-em [#476], [#482], [#490], [#500], [#502], [#505], [#506]).
[#476]: https://github.com/enb/enb/pull/476
[#482]: https://github.com/enb/enb/pull/482
[#490]: https://github.com/enb/enb/pull/490
[#500]: https://github.com/enb/enb/pull/500
[#502]: https://github.com/enb/enb/pull/502
[#505]: https://github.com/enb/enb/pull/505
[#506]: https://github.com/enb/enb/pull/506
#### CLI
Чтобы получить информацию о времени работы технологий используйте опцию `--profiler`.
```shell
$ enb make --profiler
```
<img src="https://cloud.githubusercontent.com/assets/2225579/18178860/b5d4e2f2-7088-11e6-9981-228ba56bb9d9.png" width="500">
Чтобы получить подробную информацию о времени работы каждого таргета используйте опцию `--profiler` со значением `targets`.
```shell
$ enb make --profiler=targets
```
<img src="https://cloud.githubusercontent.com/assets/2225579/18178884/c8c00932-7088-11e6-83e8-86dffbdcff87.png" width="600">
Чтобы получить процентили для времени работы технологий используйте опцию `--profiler-percentiles`.
```shell
$ enb make --profiler-percentiles=25,50,95
```
<img src="https://cloud.githubusercontent.com/assets/2225579/18178913/e14bf7fe-7088-11e6-96c1-0887ff9d0101.png" width="350">
#### API
В режиме профилирования `enb.make()` возвращает объект со следующими полями:
* `techMetrics` — содержит результаты профилирования технологий (аналог `$ enb make --profiler`)
* `buildTimes` — содержит информацию о времени для каждого таргета (аналог `$ enb make --profiler=targets`)
```js
var enb = require('enb');
enb.make({ profiler: true })
.then(function(data) {
console.log(data.techMetrics);
console.log(data.buildTimes);
});
```
### Исправления ошибок
* Исправлено кэширование для технологии `file-copy` (@loyd [#484]).
[#484]: https://github.com/enb/enb/pull/484
### Зависимости
* Модуль `glob@7.0.3` обновлен до версии `7.0.6`.
* Модуль `inherit@2.2.3` обновлен до версии `2.2.5`.
* Модуль `lodash@3.10.1` обновлен до версии `4.15.0` (@blond, @greenkeeperio-bot [#453], [#499]).
* Модуль `vow-fs@0.3.5` обновлен до версии `0.3.6`.
* Модуль `serve-static@1.10.2` обновлен до версии `1.11.1`.
[#453]: https://github.com/enb/enb/pull/453
[#499]: https://github.com/enb/enb/pull/499
### Commits
* [[`ea271f0`](https://github.com/enb/enb/commit/ea271f0)] - chore(package): use caret ranges for dev dependencies (@blond)
* [[`91e0ddc`](https://github.com/enb/enb/commit/91e0ddc)] - Object -> Function (@Yeti-or)
* [[`d5b5435`](https://github.com/enb/enb/commit/d5b5435)] - Убрал ссылку на конфигуратор (@h4)
* [[`fcd75a0`](https://github.com/enb/enb/commit/fcd75a0)] - Rename in docs enb/lib/server/server-middleware -> enb/lib/server/middleware (@adinvadim)
1.3.0
-----
### API
* Через API теперь можно получить класс `MakePlatform` ([#450]).
```js
var enb = require('enb');
var MakePlatform = enb.MakePlatform;
```
### Зависимости
* Модуль `glob@6.0.4` обновлен до версии `7.0.3`.
1.2.1
-----
### Исправления ошибок
* Исправлен метод `ProjectConfig.includeConfig()`: путь к модулю должен расчитываться от корня проекта ([#444]).
### Зависимости
* Модуль `chalk@1.1.1` обновлен до версии `1.1.3`.
* Модуль `connect@3.4.0` обновлен до версии `3.4.1`.
* Модуль `serve-static@1.10.1` обновлен до версии `1.10.2`.
* Модуль `vow-fs@0.3.4` обновлен до версии `0.3.5`.
1.2.0
-----
### Улучшения
* Добавлена технология `write-file` ([#426]).
### Исправления ошибок
* Исправлен метод `Node.resolvePath()`: некорректно обрабатывались абсолютные пути ([#433]).
* Исправлены тесты для запуска в NodeJS 4 ([#438]).
### Остальное
* Для кэш-файла используется формат `JSON` вместо `CommonJS` ([#434]).
Было:
```
.enb/tmp/cache.js
```
Стало:
```
.enb/tmp/cache.json
```
1.1.2
-----
### Исправления ошибок
* Исправлено наследование технологий в `build-flow` ([#422]):
* Исправлена работа `this.__base()` в `builder` ([#230]).
* Исправлена работа `this.__base()` для методов технологий ([#222]).
### Зависимости
* Модуль `glob@6.0.2` обновлен до версии `6.0.4`.
* Модуль `inherit@2.2.2` обновлен до версии `2.2.3`: возможность подменять метод `__base()` при тестировании.
* Модуль `serve-static@1.10.0` обновлен до версии `1.10.1`.
* Модуль `vow@0.4.11` обновлен до версии `0.4.12`.
1.1.1
-----
### Исправления ошибок
* Технология `file-merge`: исправлено построение карт кода (source maps) для работы с `enb server` ([#421]).
### Зависимости
* Модуль `enb-source-map@1.8.0` обновлен до версии `1.9.0`.
* Модуль `glob@5.0.15` обновлен до версии `6.0.2`.
1.1.0
-----
### API
* Добавлена опция `strict` для метода `enb.make()` ([#411]).
### Исправления ошибок
* Исправлено логирование сервера: сообщения `build failed` не будут выводиться при получении файлов, которые не нужно собирать с помощью ENB ([#410]).
### Зависимости
* Модуль `commander@2.8.1` обновлен до версии `2.9.0`.
* Модуль `connect@3.1.1` обновлен до версии `3.4.0`.
* Модуль `enb-async-require@1.0.0` обновлен до версии `1.0.1`.
* Модуль `enb-require-or-eval@1.0.1` обновлен до версии `1.0.2`.
1.0.1
-----
### Исправления ошибок
* Исправлен метод `make`: возможность передавать только опции ([#397]).
* Исправлено получение `buildFlow` через API ([#404]).
### Зависимости
* Модуль `glob@5.0.14` обновлен до версии `5.0.15`.
* Модуль `vow@0.4.10` обновлен до версии `0.4.11`.
### Остальное
* Технологии `file-copy`, `file-merge`, `file-provider` и `symlink` используют публичное API ([#406]).
1.0.0
-----
Начиная с данной версии предполагается, что внутреннее устройство `ENB` может произвольно меняться. Пользователям предлагается использовать исключительно публичный API. Если необходимая функциональность там отсутствует - ожидается [issue] или [pull request].
Для удобства участия в разработке `ENB` большая часть ядра `ENB` покрыта тестами. Покрытие на данный момент составляет 90.96%.
### Крупные изменения
* Обновлены зависимости до актуальных на момент релиза версий. ([#386])
* Обновлен публичный API: Добавлены классы `BaseTech`, `BuildFlow`, `FileList`. Также добавлен namespace `asyncFs`. ([#398])
* Удалена `cli` команда `help`. ([#358])
* Для команды `enb server` опция `host` теперь задается ключем `-H` вместо `-h`. ([#101])
* Граф сборки не строится по умолчанию. Таким образом уменьшается время сборки и потребление памяти. ([#357])
* Удалены технологии, переехавшие в `enb-bem-techs`, `enb-bem-i18n`, `enb-bembundle` и другие отдельные пакеты. Оставшиеся в ядре технологии: `file-copy`, `file-merge`, `file-provider`, `symlink`. ([#367])
* Удален старый генератор `project-stub` ([#360])
* Удалены старые моки: `test-node`, `test-logger`, `test-file-system`. `mock-node` и `mock-logger` могут быть найдены в пакете `mock-enb`. Вместо `test-file-system` предполагается использовать пакет `mock-fs`. ([#365], [#369], [#371])
* Удалена утилита `dir-glob`. В качестве замены предполагается пакет `glob`. ([#378])
* Удалена утилита `drop-require-cache`, для совместимости с использующими её на момент релиза технологиями оставлена заглушка. Вместо `drop-require-cache` предполагается использовать модуль `clear-require`. ([#341], [#342])
* Удалена утилита `async-require`, для совместимости с использующими её на момент релиза технологиями оставлена заглушка. Вместо `async-require` предполагается использовать модуль `enb-async-require`. ([#400])
* Удалена утилита `require-or-eval`, для совместимости с использующими её на момент релиза технологиями оставлена заглушка. Вместо `require-or-eval` предполагается использовать модуль `enb-require-or-eval`. ([#400])
* Удалены устаревшие методы из `FileList`. ([#363])
* Обновлен `ENB server`: удалены избыточные зависимости, остальные обновлены до актуальных на момент релиза версий. ([#393])
### Исправления ошибок
* По команде `npm test` тесты запускаются только один раз ([#334])
0.17.2
------
### Исправления ошибок
* Теперь можно отключать предупреждения об устаревших модулях с помощью опции `--hide-warnings` ([#304]).
* Больше не показывается ложное предупреждение об использовании модуля `dir-glob` ([#312]).
### Зависимости
* Модуль `enb-source-map@1.5.0` обновлен до версии `1.7.2`: исправляет склеивание файлов с помощью технологии `file-merge` ([#321]).
### Остальное
* Предупреждения об устаревших модулях выводятся с использованием стандартного ENB-логгера ([#313]).
* В предупреждениях об устаревших модулях указывается путь модуля, в котором он используется ([#303]).
0.17.1
------
### Исправления ошибок
* Технология `file-merge` исправлена для объединения CSS-файлов с учётом source maps ([#314]).
* Методы `Node.getNodePath` и `Node.resolvePath` теперь возвращают корректный путь в Windows ([#306]).
### Зависимости
* Модуль `enb-source-map@1.5.0` обновлен до версии `1.7.1`.
0.17.0
------
### Крупные изменения
* Добавлена поддержка карт кода (source maps) для технологии `file-merge` ([#296]).
* Добавлена возможность явно включать цветной вывод в логах (например, в CLI) с помощью переменной окружения `COLOR` ([#271]).
### Остальное
* Методы `loadFromDirSync`, `loadFromDir` и `parseFilename` модуля `FileList` объявлены устаревшими ([#268]).
* Модуль `dir-glob` объявлен устаревшим ([#270]). Вместо него рекомендуется использовать модуль [glob](https://github.com/isaacs/node-glob).
0.16.0
------
### Крупные изменения
* Добавлен пул дочерних процессов `jobQueue` для выполнения «тяжелых» задач в технологиях ([#257]).
* Добавлен метод `getSharedResources()` для `MakePlatform` и `Node`. Он возвращает набор общих ресурсов, которые могут быть использованы в технологиях. ([#257]).
### Остальное
* Методы `justJoinFiles` и `justJoinFilesWithComments` модуля `build-flow` теперь используют `EOL` вместо `\n` ([#242]).
0.15.0
------
### JavaScript API
* Добавлен метод `make` для сборки нод и таргетов, а также для запуска тасков.
* Добавлен метод `runServer` для запуска dev-сервера.
### CLI
* `make`: добавлена опция `mode`.
* `server`: добавлены опции `dir`, `mode` и `--no-cache`.
### Engines
* Добавлена поддержка `Node.js` версии `0.12`.
* Добавлена поддержка `io.js`.
### Тестирование
* Исправлены тесты для запуска в Windows.
* Добавлено тестирование под Windows в Continues Integration при помощи [AppVeyor](http://www.appveyor.com).
### Остальные изменения
* Добавлена возможность указать конфиг сборки при инициализации `MakePlatform`.
* При построении страницы индекса для dev-сервера теперь учитывается кэш.
* Исправлена обработка путей в `FileList` для методов `loadFromDir` и `loadFromDirSync`.
0.14.0
------
### Устаревшие технологии
* Базовые БЭМ технологии переехали в пакет `enb-bem-techs`. Описание миграции смотрите в [руководстве](https://github.com/enb-bem/enb-bem-techs/blob/master/MIGRATION.md).
* `bemdecl-from-bemjson`
* `bemdecl-from-deps-by-tech`
* `bemdecl-merge`
* `bemdecl-provider`
* `deps-merge`
* `deps-old`
* `deps-provider`
* `deps-subtract`
* `deps`
* `files`
* `levels`
* Технологии для сборки `i18n` переехали в пакет `enb-bem-i18n`:
* `i18n-keysets-xml`
* `i18n-lang-js`
* `i18n-merge-keysets`
* Технологии для получения `html` устарели. Вместо них следует использовать технологии, поставляемые в пакетах (`enb-xjst`, `enb-bemxjst` и `enb-bh`) вместе с технологиями сборки шаблонизаторов.
* `html-from-bemjson`
* `html-from-bemjson-i18n`
* `html-from-bemjson-i18n-sync`
* Технология `i18n-lang-js-chunks` переехала в пакет `enb-bembundle`.
* Технология `bemdecl-test` устарела.
### Остальные изменения
* В `CacheStorage` добавлен метод `saveAsync`.
* Снижено потребление памяти при сохранении кэша.
0.13.0
------
* Для технологии `file-copy` переименованы опции `sourceTarget` -> `source`, `destTarget` -> `target`.
0.12.0
------
* Новые моки для `fs`.
* Автоматически создаем директории для страниц.
0.11.0
------
* Моки для `fs`.
* Отмечаем ряд технологий, как `deprecated`.
0.10.0
------
* Добавлена опция `--dir`.
0.9.0
-----
* Добавлена опция `sublevelDirectories` для технологии `levels`.
* Увеличена `borschik` в зависимостях.
0.8.48
------
* Добавлена опция `tech` для технологии `css-borschik-chunks`.
0.8.47
------
* Фикс build-flow: принимаем недекларированные опции в заменах.
0.8.45
------
* Мелкие фиксы.
0.8.43
------
* Фиксы, stylus поднята до `0.40.x`.
0.8.40
------
* Исправлены утечки памяти.
0.8.39
------
* Технология `html-from-bemjson-i18n-sync`.
0.8.38
------
* Фикс технологии `xslt`.
0.8.37
------
* Новая Борщика.
0.8.36
------
* Переменные для styl-технологии.
0.8.35
------
* Фикс кэширования в `html-from-bemjson`.
0.8.34
------
* Фиксы для i18n.
0.8.33
------
* Фикс ошибки формирования структуры level при наличии файлов с модификаторами но без значений модификатора.
0.8.32
------
* Фикс ошибки с модификаторами без значений.
0.8.29
------
* Совместимость с `BEViS`.
0.8.28
------
* Для технологии `bemdecl-from-bemjson` добавлена возможность указания `elemMods` в `bemjson`.
0.8.27
------
* Исправлена работа сервера при непредвиденных ошибках.
0.8.26
------
* Еще один фикс в работе `enb server` — вывод ошибок при возникновении.
0.8.25
------
* Фикс в работе `enb server` — вывод ошибок при возникновении.
0.8.24
------
* Поддержка nodejs-синтаксиса для `bemjson`-файлов.
0.8.23
------
* Информация о местоположении файлов в сборке `stylus`.
* Опция `required` для `deps` в формате `yaml`.
0.8.22
------
* ENV-переменная `ENB_FILE_LIMIT` для ограничения открытых дескрипторов файлов.
0.8.21
------
* Зависимость от `borschik` -> `v0.3.3`.
0.8.20
------
* Избавляемся от модуля `colors` из-за ошибок, связанных с ним.
* Фикс контекста в `html-from-bemjson-i18n`.
0.8.19
------
* Фикс кеширования `deps.yaml`-файлов.
0.8.18
------
* Поддерка `yaml`-формата для описания deps'ов. Считается, что `deps` в формате `deps.yaml` содержит `shouldDeps`.
0.8.17
------
* Исправлена ошибка EMFILES в технологиях `html-from-bemhtml` и `html-from-bemhtml-i18n`.
0.8.16
------
* Исправлена ошибка, возникавшая при чтении неверного кэша.
* Комментарии о включенных в сборку `priv.js`-файлов.
* Асинхронная обработка `deps`.
0.8.15
------
* Интеграция jscs для проверки стиля.
* Фиксы в нормализации зависимостей.
0.8.14
------
* Расширено поведение useFileList, теперь можно суффиксы задать через опцию `sourceSuffixes`.
* Фикс препроцессинга url в CSS.
0.8.13
------
* Фикс сборки dirs.
0.8.12
------
* Фикс сборки depsByTech.
0.8.11
------
* Интеграция с travis.
* Использован jshint.
0.8.10
------
* Конфигуратор включен в состав проекта.
* Технология css-stylus-with-nib.
* Технология css-less.
* Фикс в css-stylus.
0.8.9
-----
* Отдача статики через enb server.
0.8.8
-----
* levelsTarget для bemdecl-test.
0.8.7
-----
* Возможность задания нестандартных схем именования для уровней переопределения.
* Фиксы в модульности.
0.8.6
-----
* Поддержка модульности.
* Возможность сконфигурировать ноду для заданного режима.
0.8.5
-----
* Фикс в технологии bemdecl-from-bemjson.
* Фикс в формировалии относительных путей.
0.8.4
-----
* Фикс в технологии priv-js.
0.8.3
-----
* Технологии node-js, browser-js, vanilla-js.
0.8.2
-----
* Фиксы в технологии pub-js-i18n.
0.8.1
-----
* Переделано логгирование. Теперь оно стало короче и понятнее.
* Добавлена опция --graph в enb make. С ее помощью можно вывести граф сборки.
* Порядок суффиксов, переданных в useFileList при создании технологии теперь учитывается при формировании результата.
* Фиксы в превышении лимита открытых файлов.
* Более понятная ошибка при синтаксической ошибке в депсах.
[#450]: https://github.com/enb/enb/pull/450
[#444]: https://github.com/enb/enb/pull/444
[#438]: https://github.com/enb/enb/pull/438
[#434]: https://github.com/enb/enb/pull/434
[#433]: https://github.com/enb/enb/pull/433
[#426]: https://github.com/enb/enb/pull/426
[#422]: https://github.com/enb/enb/pull/422
[#421]: https://github.com/enb/enb/pull/421
[#411]: https://github.com/enb/enb/issues/411
[#410]: https://github.com/enb/enb/issues/410
[#406]: https://github.com/enb/enb/issues/406
[#404]: https://github.com/enb/enb/issues/404
[#400]: https://github.com/enb/enb/issues/400
[#398]: https://github.com/enb/enb/issues/398
[#393]: https://github.com/enb/enb/issues/393
[#386]: https://github.com/enb/enb/issues/386
[#397]: https://github.com/enb/enb/pull/397
[#378]: https://github.com/enb/enb/issues/378
[#371]: https://github.com/enb/enb/issues/371
[#369]: https://github.com/enb/enb/issues/369
[#367]: https://github.com/enb/enb/issues/367
[#365]: https://github.com/enb/enb/issues/365
[#363]: https://github.com/enb/enb/issues/363
[#360]: https://github.com/enb/enb/issues/360
[#358]: https://github.com/enb/enb/issues/358
[#357]: https://github.com/enb/enb/pull/357
[#342]: https://github.com/enb/enb/issues/342
[#341]: https://github.com/enb/enb/issues/341
[#334]: https://github.com/enb/enb/issues/334
[#321]: https://github.com/enb/enb/pull/321
[#314]: https://github.com/enb/enb/issues/314
[#313]: https://github.com/enb/enb/pull/313
[#312]: https://github.com/enb/enb/issues/312
[#306]: https://github.com/enb/enb/issues/306
[#304]: https://github.com/enb/enb/issues/304
[#303]: https://github.com/enb/enb/issues/303
[#302]: https://github.com/enb/enb/issues/302
[#296]: https://github.com/enb/enb/issues/296
[#293]: https://github.com/enb/enb/pull/293
[#271]: https://github.com/enb/enb/pull/271
[#270]: https://github.com/enb/enb/issues/270
[#268]: https://github.com/enb/enb/issues/268
[#257]: https://github.com/enb/enb/pull/257
[#242]: https://github.com/enb/enb/issues/242
[#230]: https://github.com/enb/enb/pull/230
[#222]: https://github.com/enb/enb/issues/222
[#101]: https://github.com/enb/enb/issues/101
[issue]: https://github.com/enb/enb/issues/
[pull request]: https://github.com/enb/enb/pulls