{"id":210884,"date":"2014-01-30T19:14:03","date_gmt":"2014-01-30T15:14:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=210884"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=210884","title":{"rendered":"<span class=\"post_title\">\u0411\u0430\u043d\u0434\u043b\u2026 \u041f\u0430\u0440\u0430-\u043f\u0430\u0440\u0430-\u043f\u0430 \u0445\u044d\u0439! \u0438\u043b\u0438 Bundle Transformer \u0448\u0430\u0433\u0430\u0435\u0442 \u043f\u043e \u043f\u043b\u0430\u043d\u0435\u0442\u0435 2<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<a href=\"http:\/\/taritsyn.files.wordpress.com\/2014\/01\/bundle-transformer-mosaic-jan-2014.png\" title=\"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/22c\/067\/e66\/22c067e665247f1ea9639281510e386c.png\" alt=\"\u0423\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043e Bundle Transformer \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435\" width=\"535\" height=\"291\"\/><\/a><\/p>\n<p>  \u042f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0439\u0434\u0443 \u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 <a href=\"\/2013\/05\/04\/bandl-para-para-pa-hjej-ili-bundle-transformer-shagaet-po-planete\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/a> \u0438 \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0439 \u043e <a href=\"http:\/\/bundletransformer.codeplex.com\/\">Bundle Transformer<\/a>, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0438 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430.<\/p>\n<p>  \u0414\u043e \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"http:\/\/www.dotlesscss.org\/\">dotless<\/a> \u0431\u044b\u043b\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LESS \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 .NET-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u0438 \u0432\u0445\u043e\u0434\u0438\u043b\u0430 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f ASP.NET: <a href=\"http:\/\/getcassette.net\/\">Cassette<\/a>, <a href=\"http:\/\/github.com\/jetheredge\/SquishIt\">SquishIt<\/a>, <a href=\"http:\/\/github.com\/buunguyen\/combres\">Combres<\/a> \u0438 <a href=\"http:\/\/requestreduce.org\/\">RequestReduce<\/a>. Bundle Transformer \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 dotless \u0438 DotlessClientOnly (\u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.Less\/\">BundleTransformer.Less<\/a> \u0438 BundleTransformer.LessLite.<\/p>\n<p>  \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432 \u043a\u043e\u0440\u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0448\u0435\u043b <a href=\"http:\/\/getbootstrap.com\/\">Twitter Bootstrap 3.0<\/a>. \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u0442\u0438\u043b\u0435\u0439 Bootstrap 3.0 \u0431\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 LESS 1.4.X, \u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 dotless \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e LESS (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 LESS 1.4.X \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 dotless \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0434\u0435\u043a\u0430\u0431\u0440\u0435 2013 \u0433\u043e\u0434\u0430). \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LESS \u0432 \u043e\u0434\u043d\u043e\u0447\u0430\u0441\u044c\u0435 \u0441\u0442\u0430\u043b\u0438 \u043c\u043e\u0440\u0430\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c\u0438.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 BundleTransformer.Less \u0438 BundleTransformer.LessLite \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e LESS-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"http:\/\/github.com\/less\/less.js\">less.js<\/a>. \u041a \u0442\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0431\u044b\u043b \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u043f\u044b\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 (\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u043e\u0432) \u0438 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0431\u0430\u0437\u0435 Node.js-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a (\u043c\u043e\u0434\u0443\u043b\u0438 <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.CoffeeScript\/\">BundleTransformer.CoffeeScript<\/a>, <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.TypeScript\/\">BundleTransformer.TypeScript<\/a>, <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.UglifyJs\/\">BundleTransformer.UglifyJs<\/a> \u0438 <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.Csso\/\">BundleTransformer.Csso<\/a>). \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 BundleTransformer.Less \u0438 BundleTransformer.LessLite \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 JavaScript-\u0434\u0432\u0438\u0436\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"http:\/\/github.com\/Taritsyn\/MsieJavaScriptEngine\">MSIE JavaScript Engine for .Net<\/a>, \u043d\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044f \u0441\u0442\u0430\u043b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 MSIE JavaScript Engine for .Net \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0435 \u043e\u0434\u043d\u0443 \u0438\u0437 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0434\u0432\u0438\u0436\u043a\u0430 V8 \u043f\u043e\u0434 .NET. \u0422\u0430\u043a \u044f \u043d\u0430\u0447\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 \u0441\u0432\u043e\u0438\u043c \u043d\u043e\u0432\u044b\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u2014 <a href=\"http:\/\/github.com\/Taritsyn\/JavaScriptEngineSwitcher\">JavaScript Engine Switcher<\/a>.<\/p>\n<p>  JavaScript Engine Switcher \u2013 \u044d\u0442\u043e .NET-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0430\u0437\u043e\u0432\u044b\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 JavaScript-\u0434\u0432\u0438\u0436\u043a\u043e\u0432:  <\/p>\n<ol>\n<li>MSIE JavaScript Engine for .Net<\/li>\n<li>V8 (\u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0432\u0438\u0436\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"http:\/\/javascriptdotnet.codeplex.com\/\">Noesis Javascript .NET<\/a>, \u043d\u043e \u0438\u0437-\u0437\u0430 \u043f\u043b\u043e\u0445\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 64-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 IIS 8.X \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u2014 <a href=\"http:\/\/clearscript.codeplex.com\/\">Microsoft ClearScript.V8<\/a>)<\/li>\n<li><a href=\"http:\/\/jurassic.codeplex.com\/\">Jurassic<\/a><\/li>\n<\/ol>\n<p>  JavaScript Engine Switcher \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 .NET-\u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u043e\u0433\u043e JavaScript-\u0434\u0432\u0438\u0436\u043a\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043b\u044e\u0431\u0438\u043c\u044b\u0439 JavaScript-\u0434\u0432\u0438\u0436\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JavaScript Engine Switcher. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 <code>IJsEngine<\/code> \u0438\u043b\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 <code>JsEngineBase<\/code> \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u043d <code>JavaScriptEngineSwitcher.Core<\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 <code>\\configuration\\jsEngineSwitcher\\core\\engines<\/code> \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (<code>Web.config<\/code> \u0438\u043b\u0438 <code>App.config<\/code>).<\/p>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 1.8.0 \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 Bundle Transformer, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0434\u0430 JavaScript-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0441\u0442\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c JavaScript Engine Switcher. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f BundleTransformer.LessLite \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0430, \u0442.\u043a. \u043e\u043d \u0443\u0436\u0435 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0441\u044f \u043e\u0442 BundleTransformer.Less. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0438\u0436\u043a\u0430 V8 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0434\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"http:\/\/github.com\/GoalSmashers\/clean-css\">Clean-css<\/a> \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.CleanCss\/\">BundleTransformer.CleanCss<\/a>.<\/p>\n<p>  \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u044f\u043c\u043e\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 Internet Explorer \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 LESS (\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f LESS 1.6.1) \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 Bundle Transformer \u043e\u0431\u043e\u0439\u0442\u0438 \u0432\u0441\u0435\u0445 \u0441\u0432\u043e\u0438\u0445 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432 \u0438 \u0437\u0430\u043d\u044f\u0442\u044c 21-\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 <a href=\"http:\/\/nuget.org\/packages?q=Tags%3A%22ASP.NET%22&amp;amp;sortOrder=package-download-count&amp;amp;page=2&amp;amp;prerelease=False\">\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 ASP.NET<\/a> \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 \u0441\u0430\u0439\u0442\u0430 NuGet Gallery. \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u0442\u043e\u043a \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e Bundle Transformer:  <\/p>\n<ol>\n<li>\u0421\u0442\u0430\u0442\u044c\u044f \u0414\u0436\u0435\u043d\u043d\u0438\u0444\u0435\u0440 \u0421\u0435\u043c\u0442\u043d\u0435\u0440 <a href=\"http:\/\/www.jennifersemtner.com\/css\/326\/setting-up-asp-net-mvc-4-and-twitter-bootstrap-3-with-less\/\">\u00abSetting up ASP.NET MVC 4 and Twitter Bootstrap 3 with LESS\u00bb<\/a><\/li>\n<li>\u0421\u0442\u0430\u0442\u044c\u044f \u0422\u043e\u043c\u0430 \u0414\u044e\u043f\u043e\u043d\u0430 <a href=\"http:\/\/www.tomdupont.net\/2013\/10\/bootstrap-3-less-bundling-and-aspnet-mvc.html\">\u00abBootstrap 3, LESS, Bundling, and ASP.NET MVC\u00bb<\/a><\/li>\n<li>\u041f\u043e\u0441\u0442 \u0415\u0432\u0433\u0435\u043d\u0438\u044f \u042f\u0440\u043e\u0441\u043b\u0430\u0432\u043e\u0432\u0430 <a href=\"http:\/\/ts-soft.ru\/blog\/less-aspnet\/\">\u00ab\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 LESS \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 ASP.NET MVC\u00bb<\/a> \u0432 \u0431\u043b\u043e\u0433\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 <a href=\"http:\/\/ts-soft.ru\/\">\u00ab\u0422\u0438\u042d\u0441 \u0421\u043e\u0444\u0442\u00bb<\/a><\/li>\n<li>\u041f\u043e\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f Kalint <a href=\"http:\/\/www.neowin.net\/forum\/topic\/1191221-guide-to-getting-less-working-with-twitter-bootstrap-in-mvc-5\/\">\u00abGuide to getting LESS working with Twitter Bootstrap in MVC&nbsp;5\u00bb<\/a> \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0441\u0430\u0439\u0442\u0430 <a href=\"http:\/\/www.neowin.net\/\">Neowin.net<\/a><\/li>\n<\/ol>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u041f\u041e \u0441\u0442\u0430\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c Bundle Transformer \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432:  <\/p>\n<ol>\n<li>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u041c\u0430\u0439\u043a\u043b\u0430 \u0411\u0435\u0440\u0434\u0430 <a href=\"http:\/\/github.com\/michaeljbaird\/Mvc4BootstrapLessDemo\">\u00abMVC4 Bootstrap .less{} Demo Project\u00bb<\/a><\/li>\n<li>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"http:\/\/our.umbraco.org\/projects\/backoffice-extensions\/sassy\">Sassy<\/a> \u0434\u043b\u044f CMS Umbraco, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0435 \u0423\u043e\u0440\u0440\u0435\u043d\u043e\u043c \u0411\u0430\u043a\u043b\u0438 <\/li>\n<li>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"http:\/\/our.umbraco.org\/projects\/developer-tools\/optimus\">Optimus<\/a> \u0434\u043b\u044f CMS Umbraco, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0435 \u0422\u0438\u043c\u043e\u043c \u0413\u0435\u0439\u0441\u0441\u0435\u043d\u0441\u043e\u043c, \u0423\u043e\u0440\u0440\u0435\u043d\u043e\u043c \u0411\u0430\u043a\u043b\u0438 \u0438 \u0414\u0436\u0438\u0432\u043e\u043d\u043e\u043c \u041b\u0435\u043e\u043f\u043e\u043b\u044c\u0434\u043e\u043c<\/li>\n<li>\u041f\u0440\u043e\u0435\u043a\u0442 <a href=\"http:\/\/github.com\/openlab\/OGDI-DataLab\">\u00abOpen Government Data Initiative v6\u00bb<\/a><\/li>\n<li>CMS <a href=\"http:\/\/www.eonicweb.com\/\">EonicWeb5<\/a><\/li>\n<\/ol>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u044f\u0440\u043a\u0438\u0445 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0439 \u043e Bundle Transformer:<\/p>\n<h3>1. 77-\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e-\u0448\u043e\u0443 Code Name \u00abAPS\u00bb<\/h3>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/0cb\/72d\/589\/0cb72d58957874c3d7e559d8982a3db3.png\" alt=\"\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441\u0430\u0439\u0442\u0430 \u0440\u0430\u0434\u0438\u043e-\u0448\u043e\u0443 Code Name \u00abAPS\u00bb\" width=\"535\" height=\"110\"\/><\/p>\n<p>  \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043e 21-\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0440\u0430\u0434\u0438\u043e-\u0448\u043e\u0443 <a href=\"http:\/\/aps-radio.com\/\">Code Name \u00abAPS\u00bb<\/a> \u043d\u0430 <a href=\"http:\/\/binradio.ru\/\">\u0411\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0420\u0430\u0434\u0438\u043e<\/a>, \u0432 \u044d\u0444\u0438\u0440\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u043d\u044b\u0435 \u0434\u0438\u0434\u0436\u0435\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043e\u0431\u0437\u043e\u0440 Bundle Transformer 1.6.5. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043c\u043d\u0435 \u043f\u043e\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u0438\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u0442\u044c \u0433\u043e\u0441\u0442\u0435\u043c 77-\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0434\u0438\u043e-\u0448\u043e\u0443. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043e Bundle Transformer \u0438 <a href=\"http:\/\/webmarkupmin.codeplex.com\/\">WebMarkupMin<\/a>, \u043d\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0435\u043c\u044b: WebMatrix, ASP.NET Web Pages, Web Essentials 2013, TypeScript, Windows 8 \u0438 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0434\u0438\u043e-\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/vk.com\/audios-40009810?q=Code%20Name%20%22APS%22\">\u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0411\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0420\u0430\u0434\u0438\u043e<\/a> \u0432 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u00ab\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435\u00bb \u0438\u043b\u0438 <a href=\"http:\/\/www.dropbox.com\/s\/t6ipjvvhp9y79ce\/Code-Name-APS-77.mp3\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 MP3-\u0444\u0430\u0439\u043b\u0430<\/a>.<\/p>\n<h3>2. \u041f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f Optimus \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u00abUmbraco UK Fest 2013\u00bb<\/h3>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/e46\/75f\/f03\/e4675ff03b84050b38e6976141d7d18a.png\" alt=\"\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0432\u0438\u0434\u0435\u043e-\u0440\u043e\u043b\u0438\u043a\u0430 \u00abOptimus, the trailer\u00bb\" width=\"535\" height=\"110\"\/><\/p>\n<p>  <a href=\"http:\/\/our.umbraco.org\/projects\/developer-tools\/optimus\">Optimus<\/a> \u2013 \u044d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f CMS <a href=\"http:\/\/umbraco.com\/\">Umbraco<\/a>, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <a href=\"http:\/\/aspnetoptimization.codeplex.com\/\">Microsoft ASP.NET Web Optimization Framework<\/a> \u0438 Bundle Transformer. \u0414\u0430\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 front-end \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c c C# \u0438\u043b\u0438 VB.NET, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u0430\u043d\u0434\u043b\u044b \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 Umbraco. \u0422\u0430\u043a\u0436\u0435 \u0434\u043b\u044f Optimus \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 (\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432: LESS, Sass\/SCSS, CoffeeScript \u0438 TypeScript.<\/p>\n<p>  \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (\u0422\u0438\u043c \u0413\u0435\u0439\u0441\u0441\u0435\u043d\u0441 \u0438 \u0423\u043e\u0440\u0440\u0435\u043d \u0411\u0430\u043a\u043b\u0438) \u043e\u0447\u0435\u043d\u044c \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u0432\u044b\u0431\u043e\u0440\u0443 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u00abOptimus\u00bb \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u044b\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432:  <\/p>\n<ol>\n<li>\u041e\u043d\u043e \u0441\u043e\u0437\u0432\u0443\u0447\u043d\u043e \u0441\u043e \u0441\u043b\u043e\u0432\u043e\u043c \u00abOptimization\u00bb \u0438\u0437 Microsoft ASP.NET Web Optimization Framework.<\/li>\n<li>\u0421\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u0432 \u2014 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D1%83%D1%81_%D0%9F%D1%80%D0%B0%D0%B9%D0%BC\">\u041e\u043f\u0442\u0438\u043c\u0443\u0441\u0430 \u041f\u0440\u0430\u0439\u043c\u0430<\/a>.<\/li>\n<\/ol>\n<p>  \u0414\u0430\u0436\u0435 \u0432 \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u043c\u0431\u043b\u0435\u043c\u0430 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%B2%D1%82%D0%BE%D0%B1%D0%BE%D1%82%D1%8B\">\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u0432-\u0430\u0432\u0442\u043e\u0431\u043e\u0442\u043e\u0432<\/a>:<br \/>  <a href=\"http:\/\/taritsyn.files.wordpress.com\/2014\/01\/optimus-logo.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/c1c\/da5\/dfa\/c1cda5dfa2ac5b9c2ff1b74fe99824c9.png\" alt=\"\u041b\u043e\u0433\u043e\u0442\u0438\u043f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f Optimus\" width=\"250\" height=\"250\"\/><\/a><br \/>  \u041d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0431\u044b\u043b\u043e \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0422\u0438\u043c\u0430 \u0413\u0435\u0439\u0441\u0441\u0435\u043d\u0441\u0430 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 <a href=\"http:\/\/umbracoukfestival.co.uk\/\">\u00abUmbraco UK Fest 2013\u00bb<\/a>:<\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/7Tb6DQERSak?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 Optimus \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432 <a href=\"http:\/\/www.nibble.be\/index.php?s=Optimus\">\u0431\u043b\u043e\u0433\u0435 \u0422\u0438\u043c\u0430 \u0413\u0435\u0439\u0441\u0441\u0435\u043d\u0441\u0430<\/a> \u0438 \u0441\u0442\u0430\u0442\u044c\u0435 \u0423\u043e\u0440\u0440\u0435\u043d\u0430 \u0411\u0430\u043a\u043b\u0438 <a href=\"http:\/\/creativewebspecialist.co.uk\/2013\/07\/12\/transformers-robots-in-disguise\/\">\u00abTransformers! Robots in Disguise\u00bb<\/a>.<\/p>\n<h3>3. \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u00abASP.NET Bundling, Minification &amp; Resource Optimization\u00bb \u043e\u0442 Pluralsight<\/h3>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/511\/177\/d85\/511177d85c23b84f3611f1f88601efd3.png\" alt=\"\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u00abASP.NET Bundling, Minification &amp;amp; Resource Optimization\u00bb \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Pluralsight\" width=\"535\" height=\"110\"\/><\/p>\n<p>  \u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0440\u0441 \u0422\u0440\u044d\u0432\u0438\u0441\u0430 \u0413\u043e\u0441\u0441\u0435\u043b\u0438\u043d\u0430 <a href=\"http:\/\/pluralsight.com\/training\/Courses\/TableOfContents\/aspnet-bundling-minification-resource-optimization\">\u00abASP.NET Bundling, Minification &amp; Resource Optimization\u00bb<\/a>, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 Microsoft ASP.NET Web Optimization Framework (\u043d\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 ASP.NET Web Pages). \u0420\u0430\u043d\u044c\u0448\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e \u043a\u0440\u0443\u043f\u0438\u0446\u0430\u043c: \u0447\u0438\u0442\u0430\u0442\u044c <a href=\"http:\/\/www.asp.net\/mvc\/tutorials\/mvc-4\/bundling-and-minification\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>, \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 <a href=\"http:\/\/codebetter.com\/howarddierking\/\">\u0431\u043b\u043e\u0433\u043e\u043c \u0413\u043e\u0432\u0430\u0440\u0434\u0430 \u0414\u0451\u0440\u043a\u0438\u043d\u0433\u0430<\/a>, \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 <a href=\"http:\/\/stackoverflow.com\/\">Stack Overflow<\/a> \u0438 \u0434\u0430\u0436\u0435 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043a\u043e\u0434 \u0441\u0431\u043e\u0440\u043a\u0438 <code>System.Web.Optimization.dll<\/code> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0432 \u0442\u0430\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u0443\u0440\u0441\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u043c\u0435\u0441\u0442\u043e \u0438 \u0434\u043b\u044f Bundle Transformer. \u0420\u0430\u0431\u043e\u0442\u0435 \u0441 Bundle Transformer \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u044b \u0434\u0432\u0430 \u0432\u0438\u0434\u0435\u043e-\u0440\u043e\u043b\u0438\u043a\u0430:<\/p>\n<p>  <a href=\"http:\/\/taritsyn.files.wordpress.com\/2014\/01\/pluralsight-aspnet-bundling-minification-resource-optimization-table-of-contents.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/c97\/ddd\/9d9\/c97ddd9d9237e595dc2410705a1dc6c1.png\" alt=\"\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u00abASP.NET Bundling, Minification &amp;amp; Resource Optimization\u00bb \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Pluralsight\" width=\"600\" height=\"446\"\/><\/a><\/p>\n<p>  \u0412 \u0432\u0438\u0434\u0435\u043e-\u0440\u043e\u043b\u0438\u043a\u0435 \u00abDemo: Bundle Transformer Package\u00bb \u0430\u0432\u0442\u043e\u0440 \u043a\u0443\u0440\u0441\u0430 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 BundleTransformer.Less \u0438 <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.Yui\/\">BundleTransformer.Yui<\/a> \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Bundle Transformer \u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430:<\/p>\n<pre><code>bundles.Add(new Bundle(&quot;~\/bundles\/app&quot;, new JsTransformer()) \t.IncludeDirectory(&quot;~\/Scripts\/app&quot;, &quot;*.js&quot;));  bundles.Add(new Bundle(&quot;~\/styles\/site&quot;, new CssTransformer()).Include( \t&quot;~\/Content\/bootstrap\/bootstrap.css&quot;, \t&quot;~\/Content\/site.less&quot;, \t&quot;~\/Content\/toastr.css&quot;));<\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u044d\u0442\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043a\u043e\u0434, \u043d\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044f \u043a\u043e\u0434\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 <code>NullBuilder<\/code>:<\/p>\n<pre><code>var nullBuilder = new NullBuilder();  bundles.Add(new Bundle(&quot;~\/bundles\/app&quot;, new JsTransformer()) \t{ \t\tBuilder = nullBuilder \t} \t.IncludeDirectory(&quot;~\/Scripts\/app&quot;, &quot;*.js&quot;));  bundles.Add(new Bundle(&quot;~\/styles\/site&quot;, new CssTransformer()) \t{ \t\tBuilder = nullBuilder \t} \t.Include( \t\t&quot;~\/Content\/bootstrap\/bootstrap.css&quot;, \t\t&quot;~\/Content\/site.less&quot;, \t\t&quot;~\/Content\/toastr.css&quot;));<\/code><\/pre>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 <code>CustomScriptBundle<\/code> \u0438 <code>CustomStyleBundle<\/code>:<\/p>\n<pre><code>bundles.Add(new CustomScriptBundle(&quot;~\/bundles\/app&quot;) \t.IncludeDirectory(&quot;~\/Scripts\/app&quot;, &quot;*.js&quot;));  bundles.Add(new CustomStyleBundle(&quot;~\/styles\/site&quot;) \t.Include( \t\t&quot;~\/Content\/bootstrap\/bootstrap.css&quot;, \t\t&quot;~\/Content\/site.less&quot;, \t\t&quot;~\/Content\/toastr.css&quot;)); <\/code><\/pre>\n<p>  \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u044f \u0434\u0430\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Microsoft ASP.NET Web Optimization Framework \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u044e \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u044f \u0441\u043c\u043e\u0433 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043c\u043d\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439: \u00abArchitecting Optimizations\u00bb \u0438 \u00abTesting Optimizations\u00bb).<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>  \u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c \u0432\u0441\u0435\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043c\u043d\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0442\u044c Bundle Transformer \u0432 \u0448\u0438\u0440\u043e\u043a\u0438\u0435 \u043c\u0430\u0441\u0441\u044b.      \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/210884\/\"> http:\/\/habrahabr.ru\/post\/210884\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<a href=\"http:\/\/taritsyn.files.wordpress.com\/2014\/01\/bundle-transformer-mosaic-jan-2014.png\" title=\"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/22c\/067\/e66\/22c067e665247f1ea9639281510e386c.png\" alt=\"\u0423\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043e Bundle Transformer \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435\" width=\"535\" height=\"291\"\/><\/a><\/p>\n<p>  \u042f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0439\u0434\u0443 \u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 <a href=\"\/2013\/05\/04\/bandl-para-para-pa-hjej-ili-bundle-transformer-shagaet-po-planete\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/a> \u0438 \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0439 \u043e <a href=\"http:\/\/bundletransformer.codeplex.com\/\">Bundle Transformer<\/a>, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0438 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430.<\/p>\n<p>  \u0414\u043e \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"http:\/\/www.dotlesscss.org\/\">dotless<\/a> \u0431\u044b\u043b\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LESS \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 .NET-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u0438 \u0432\u0445\u043e\u0434\u0438\u043b\u0430 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f ASP.NET: <a href=\"http:\/\/getcassette.net\/\">Cassette<\/a>, <a href=\"http:\/\/github.com\/jetheredge\/SquishIt\">SquishIt<\/a>, <a href=\"http:\/\/github.com\/buunguyen\/combres\">Combres<\/a> \u0438 <a href=\"http:\/\/requestreduce.org\/\">RequestReduce<\/a>. Bundle Transformer \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 dotless \u0438 DotlessClientOnly (\u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 <a href=\"http:\/\/nuget.org\/packages\/BundleTransformer.Less\/\">BundleTransformer.Less<\/a> \u0438 BundleTransformer.LessLite.<\/p>\n<p>  \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432 \u043a\u043e\u0440\u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0448\u0435\u043b <a href=\"http:\/\/getbootstrap.com\/\">Twitter Bootstrap 3.0<\/a>. \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u0442\u0438\u043b\u0435\u0439 Bootstrap 3.0 \u0431\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 LESS 1.4.X, \u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 dotless \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e LESS (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 LESS 1.4.X \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 dotless \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0434\u0435\u043a\u0430\u0431\u0440\u0435 2013 \u0433\u043e\u0434\u0430). \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LESS \u0432 \u043e\u0434\u043d\u043e\u0447\u0430\u0441\u044c\u0435 \u0441\u0442\u0430\u043b\u0438 \u043c\u043e\u0440\u0430\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c\u0438.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-210884","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/210884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=210884"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/210884\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=210884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=210884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=210884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}