Новая версия Bundle Transformer характеризуется следующими изменениями: большая часть сборок теперь подписана; в ядре, были исправлены ошибки, возникавшие при обработке путей; были обновлены некоторые модули (BundleTransformer.SassAndScss, BundleTransformer.CoffeeScript, BundleTransformer.TypeScript, BundleTransformer.MicrosoftAjax, BundleTransformer.Yui, BundleTransformer.UglifyJs, BundleTransformer.Csso и BundleTransformer.WG) и создана новая версия демонстрационного сайта ASP.NET Web Pages.
Рассмотрим основные нововведения данной версии:
Подписанные сборки
Почти все сборки Bundle Transformer подписаны (за исключением BundleTransformer.Yui.dll
) и могут быть размещены в GAC.
Ядро
В BundleTransformer.Core были исправлены следующие ошибки:
- Улучшено экранирование шаблонов динамически создаваемых регулярных выражений. При исправлении данной ошибки использовался пулл реквест «Improved AppPath Regex escaping» от пользователя Duckaroy.
- Исправлена ошибка, возникавшая при преобразовании относительных путей вида
./images/icons/game.png
в абсолютные.
Трансляторы
Bundle Transformer: Sass and SCSS
Модуль BundleTransformer.SassAndScss теперь использует собственный компилятор Sass- и SCSS- кода, который был реализован на основе исходного кода библиотеки SassAndCoffee.Ruby. К сожалению, данный компилятор, также как и библиотека SassAndCoffee.Ruby, поддерживает устаревшую версию Sass — 3.2.0 alpha.
Bundle Transformer: CoffeeScript
В модуле BundleTransformer.CoffeeScript была реализована поддержка CoffeeScript версии 1.4.0-3.
Bundle Transformer: TypeScript
В BundleTransformer.TypeScript была добавлена поддержка TypeScript версии 0.8.1 и исправлены следующие ошибки:
- Ошибка №10. Наличие циклических ссылок на зависимости (задаются с помощью документирующих тегов
reference
) создавало бесконечный цикл. - Ошибка №13. При экспортировании классов, объявленных внутри модулей, возникала ошибка.
- Ошибка №14. Пути вида
./BaseClass.ts
иBaseClass.ts
, объявленные в тегахreference
, считались разными, что приводило к дублированию ссылок на зависимости.
Минимизаторы
Bundle Transformer: Microsoft Ajax
В модуле BundleTransformer.MicrosoftAjax была обновлена библиотека Microsoft Ajax Minifier до версии 4.74.
Bundle Transformer: YUI
В BundleTransformer.Yui была обновлена библиотека YUI Compressor for .Net до версии 2.1.1.0.
Bundle Transformer: UglifyJS
В BundleTransformer.UglifyJs был обновлен код минимизатора UglifyJS до версии 1.3.4-1.
Bundle Transformer: CSSO
В BundleTransformer.Csso был обновлен код минимизатора CSSO до версии 1.3.6. Кроме того, пакеты BundleTransformer.Csso.x86 и BundleTransformer.Csso.x64 были объединены в один — BundleTransformer.Csso. Теперь библиотека BundleTransformer.Csso сама в процессе выполнения подключает нужную версию Noesis Javascript .NET. 32- и 64-разрядные версии сборки Noesis.Javascript.dll
расположены в директории App_Data/Noesis.Javascript
(данная директория должна копироваться при развертывании).
Bundle Transformer: WebGrease
В BundleTransformer.WG была обновлена библиотека WebGrease до версии 1.3.0. К сожалению, в семантическом CSS-минимизаторе WebGrease 1.3.0 еще не исправлена ошибка, вызывающая некорректную обработку дробных числовых значений, целая часть которых равна нулю.
Демонстрационный сайт ASP.NET Web Pages
Архив с примером сайта ASP.NET Web Pages, использующим Bundle Transformer (установлены все модули, кроме BundleTransformer.WG), можно скачать по следующей ссылке. Изначально данный демо-сайт был создан для моего выступления «Bundle Transformer – инструмент для клиентской оптимизации в среде ASP.NET» на 8-й встрече московского сообщества JavaScript-разработчиков MoscowJS.
Сейчас уже нет деления на 32- и 64-разрядную версию демо-сайта, т.к. библиотека BundleTransformer.Csso может работать на обоих платформах.
Автор: Taritsyn