рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ 1.6.2 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╛ рдЫрд╣ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ?

рд╡рд┐рд╢рд╛рд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рд▓реЛрдЧреЛ
рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдореИрдВ Microsoft ASP.NET рд╡реЗрдм рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ (рдЕрдиреНрдп рдирд╛рдо: ASP.NET рдмрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди, System.Web.Optimization, Microsoft.Web.Optimization рдФрд░ ASP.NET рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди - рдмрдВрдбрд▓рд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдореЙрдбреНрдпреВрд▓рд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдЗрд╕ рд╕рд╛рд▓ рдЕрдкреНрд░реИрд▓ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдХреА рдереА , рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдЗрд╕ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдмрд╣реБрдд рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрд┐рдЫрд▓реЗ рдЫрд╣ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

Microsoft ASP.NET рд╡реЗрдм рдЕрдиреБрдХреВрд▓рди рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рд╡рд░реНрддрди


рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХрд╛ рдЕрдкреНрд░реИрд▓ рд╕рдВрд╕реНрдХрд░рдг Microsoft ASP.NET рд╡реЗрдм рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ 1 рдмреАрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдмреА / рдПрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреА / рдПрдо рдХреЗ рджреВрд╕рд░реЗ рдмреАрдЯрд╛ рдореЗрдВ, рдЧрдВрднреАрд░ рдмрджрд▓рд╛рд╡ рд╣реБрдП: рдПрдкреАрдЖрдИ рдиреЗ рдмрд╣реБрдд рдХреБрдЫ рдмрджрд▓ рджрд┐рдпрд╛, рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдмрдВрдбрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреБрд░рд╛рдиреА рдереА ( EnableDefaultBundles рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ DynamicFolderBundle рдХреНрд▓рд╛рд╕ рдЕрдм рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИ)ред рдмреА / рдПрдо рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ - рдпрд╣ рд╕реАрдбреАрдПрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдиреЗ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред

B / M рдХреЗ рджреВрд╕рд░реЗ рдмреАрдЯрд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, Global.asax рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдмрдВрдбрд▓ рдХреЛ App_Start рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХреЛрдб рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ App_Start рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрдиреЗ рдХреА App_Start рдХреА App_Start ред Global.asax рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ BundleConfig рд╡рд░реНрдЧ рдХреЗ RegisterBundles рдкрджреНрдзрддрд┐ рдкрд░ рдХреЙрд▓ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace BundleTransformer.Example.Mvc { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); //   bundle` BundleConfig.RegisterBundles(BundleTable.Bundles); } } } 

рдмрдВрдбрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВред BundleConfig рд░реВрдк рдореЗрдВ BundleConfig рд╡рд░реНрдЧ:

 using System.Web.Optimization; using BundleTransformer.Core.Orderers; using BundleTransformer.Core.Transformers; namespace BundleTransformer.Example.Mvc { public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { var cssTransformer = new CssTransformer(); var jsTransformer = new JsTransformer(); var nullOrderer = new NullOrderer(); var commonStylesBundle = new Bundle("~/Bundles/CommonStyles"); commonStylesBundle.Include( "~/Content/Site.css", "~/Content/BundleTransformer.css", "~/AlternativeContent/css/TestCssComponentsPaths.css", "~/Content/themes/base/jquery.ui.core.css", "~/Content/themes/base/jquery.ui.theme.css", "~/Content/themes/base/jquery.ui.resizable.css", "~/Content/themes/base/jquery.ui.button.css", "~/Content/themes/base/jquery.ui.dialog.css", "~/Content/TestTranslators.css", "~/Content/TestLess.less", "~/Content/TestSass.sass", "~/Content/TestScss.scss"); commonStylesBundle.Transforms.Add(cssTransformer); commonStylesBundle.Orderer = nullOrderer; bundles.Add(commonStylesBundle); var modernizrBundle = new Bundle("~/Bundles/Modernizr"); modernizrBundle.Include("~/Scripts/modernizr-2.*"); modernizrBundle.Transforms.Add(jsTransformer); modernizrBundle.Orderer = nullOrderer; bundles.Add(modernizrBundle); var commonScriptsBundle = new Bundle("~/Bundles/CommonScripts"); commonScriptsBundle.Include("~/Scripts/MicrosoftAjax.js", "~/Scripts/jquery-{version}.js", "~/Scripts/jquery-ui-{version}.js", "~/Scripts/jquery.validate.js", "~/Scripts/jquery.validate.unobtrusive.js", "~/Scripts/jquery.unobtrusive-ajax.js", "~/Scripts/knockout-2.*", "~/Scripts/TestCoffeeScript.coffee"); commonScriptsBundle.Transforms.Add(jsTransformer); commonScriptsBundle.Orderer = nullOrderer; bundles.Add(commonScriptsBundle); var jqueryUiStylesDirectoryBundle = new Bundle("~/Bundles/JqueryUiStylesDirectory"); jqueryUiStylesDirectoryBundle.IncludeDirectory("~/Content/themes/base/", "*.css"); jqueryUiStylesDirectoryBundle.Transforms.Add(new CssTransformer( new[] { "*.all.css", "jquery.ui.base.css" })); bundles.Add(jqueryUiStylesDirectoryBundle); var scriptsDirectoryBundle = new Bundle("~/Bundles/ScriptsDirectory"); scriptsDirectoryBundle.IncludeDirectory("~/Scripts/", "*.js"); scriptsDirectoryBundle.Transforms.Add(new JsTransformer( new[] { "*.all.js", "references.js" })); bundles.Add(scriptsDirectoryBundle); } } } 

1 рдмреА / рдПрдо рдмреАрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ IncludeDirectory рдФрд░ IncludeDirectory рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( AddFile рдФрд░ AddDirectory рдмрдЬрд╛рдп)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░реВрдкрд╛рдВрддрд░рдг рдЕрдм CssTransformer рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ Transforms рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ рдЖрдк CssTransformer рдФрд░ JsTransformer рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ Bundle рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рдЙрдк-рд╡рд░реНрдЧ StyleBundle (рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдмрдВрдбрд▓ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди ( CssMinify рдФрд░ JsMinify classes рдХреЗ рдЙрджрд╛рд╣рд░рдг) рдкрд╣рд▓реЗ рд╣реА рдЗрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЗрди рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ CssMinify рдФрд░ JsMinify рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ ( CssTransformer рдФрд░ JsTransformer рдЙрджрд╛рд╣рд░рдг) рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓ _Layout.cshtml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреГрд╢реНрдп рдХреЛрдб рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдмрдВрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>@ViewBag.Title - Bundle Transformer Example MVC Application</title> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> @Styles.Render("~/Bundles/CommonStyles") @Scripts.Render("~/Bundles/Modernizr") ... </head> <body> ... @Scripts.Render("~/Bundles/CommonScripts") @RenderSection("scripts", required: false) </body> </html> 

рдмрдВрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЕрдм Render рд╡рд┐рдзрд┐ ( Styles.Render рдЙрдкрдпреЛрдЧ CSS рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ Scripts.Render рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ Styles.Render рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ Scripts.Render ред Render рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рди рдХреЗрд╡рд▓ рдмрдВрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдмреА / рдПрдо рдХреЗ рд╢реБрд░реБрдЖрддреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ - рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред

B / M рдЙрд╕ рдореЛрдб рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рдореНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:
  1. Web.config рдлрд╝рд╛рдЗрд▓ рд╕реЗ compilation рддрддреНрд╡ рдХреЗ debug рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдорд╛рди ( true - рдбрд┐рдмрдЧ рдореЛрдб; false - рд░рд┐рд▓реАрдЬрд╝ рдореЛрдб);
  2. BundleTable.EnableOptimizations рдХреА BundleTable.EnableOptimizations ред BundleTable.EnableOptimizations рдкреНрд░реЙрдкрд░реНрдЯреА, рдЬрд┐рд╕реЗ BundleTable.EnableOptimizations рдХреНрд▓рд╛рд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( true - рд░рд┐рд▓реАрдЬрд╝ рдореЛрдб; false - рдбрд┐рдмрдЧ рдореЛрдб)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, BundleTable.EnableOptimizations рдХрд╛ рдорд╛рдиред BundleTable.EnableOptimizations рдЧреБрдг Web.config рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддрд╛ рд╣реИред

рд░рд┐рд▓реАрдЬрд╝ рдореЛрдб рдореЗрдВ, рдмрдВрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдХреЛрдб рд╕рдВрдпреБрдХреНрдд рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ)ред рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдореНрди рдлреЙрд░реНрдо рдХрд╛ HTML рдХреЛрдб рд╣реИ:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Home Page - Bundle Transformer Example MVC Application</title> <link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> <link href="/Bundles/CommonStyles?v=IWN75r8IOIWnlehQ6JVPUgrb7UER075iobpzbjYTtRQ1" rel="stylesheet"/> <script src="/Bundles/Modernizr?v=1dm47T0PPFmcdy8ssp2EZ4h8yT2SjNhVvtdbc0MyDAs1"></script> ... </head> <body> ... <script src="/Bundles/CommonScripts?v=qWsyReB8UFAt-HPS-6MCkeDDTs2lQgYMdyCUd2V9O4o1"></script> </body> </html> 

рдФрд░ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ, рдмрдВрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдирдХреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Home Page - Bundle Transformer Example MVC Application</title> <link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> <link href="/Content/Site.css" rel="stylesheet"/> <link href="/Content/BundleTransformer.css" rel="stylesheet"/> <link href="/AlternativeContent/css/TestCssComponentsPaths.css" rel="stylesheet"/> <link href="/Content/themes/base/jquery.ui.core.css" rel="stylesheet"/> <link href="/Content/themes/base/jquery.ui.theme.css" rel="stylesheet"/> <link href="/Content/themes/base/jquery.ui.resizable.css" rel="stylesheet"/> <link href="/Content/themes/base/jquery.ui.button.css" rel="stylesheet"/> <link href="/Content/themes/base/jquery.ui.dialog.css" rel="stylesheet"/> <link href="/Content/TestTranslators.css" rel="stylesheet"/> <link href="/Content/TestLess.less" rel="stylesheet"/> <link href="/Content/TestSass.sass" rel="stylesheet"/> <link href="/Content/TestScss.scss" rel="stylesheet"/> <script src="/Scripts/modernizr-2.5.3.js"></script> ... </head> <body> ... <script src="/Scripts/MicrosoftAjax.debug.js"></script> <script src="/Scripts/jquery-1.8.1.js"></script> <script src="/Scripts/jquery-ui-1.8.23.js"></script> <script src="/Scripts/jquery.validate.js"></script> <script src="/Scripts/jquery.validate.unobtrusive.js"></script> <script src="/Scripts/jquery.unobtrusive-ajax.js"></script> <script src="/Scripts/knockout-2.1.0.debug.js"></script> <script src="/Scripts/TestCoffeeScript.coffee"></script> </body> </html> 

рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреА рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рд╣реИрдВред .scss .sass , .scss рдФрд░ред рдЕрдЧрд░ HTTP рд╣реИрдВрдбрд▓рд░ рдЗрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП Web.config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдЕрдкреНрд░рдорд╛рдгрд┐рдд рд╣реЛрдЧреА рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рд▓реАрд╕, рдмрдВрдбрд▓рдЯреНрд░реЗрдирдлреЙрд░реНрдорд░.рд▓реАрд╕рд▓рд╛рдЗрдЯ, рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рд╕реИрд╕рдПрдВрдбрд╕реНрдХ рдФрд░ рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдЧрдд HTTP рд╣реИрдВрдбрд▓рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗ рдЧрдПред NuGet рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд╡рд╛рджрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, HTTP рд╣реИрдВрдбрд▓рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Web.config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ:

 <?xml version="1.0" encoding="utf-8"?> <configuration> ... <system.web> ... <httpHandlers> <!-- Declaration of Bundle Transformer HTTP-handlers --> <add path="*.less" verb="GET" type="BundleTransformer.LessLite.HttpHandlers.LessAssetHandler, BundleTransformer.LessLite" /> <add path="*.sass" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" /> <add path="*.scss" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" /> <add path="*.coffee" verb="GET" type="BundleTransformer.CoffeeScript.HttpHandlers.CoffeeScriptAssetHandler, BundleTransformer.CoffeeScript" /> <!-- /Declaration of Bundle Transformer HTTP-handlers --> </httpHandlers> </system.web> <system.webServer> ... <handlers> ... <!-- Declaration of Bundle Transformer HTTP-handlers --> <add name="LessAssetHandler" path="*.less" verb="GET" type="BundleTransformer.LessLite.HttpHandlers.LessAssetHandler, BundleTransformer.LessLite" resourceType="File" preCondition="" /> <add name="SassAssetHandler" path="*.sass" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" resourceType="File" preCondition="" /> <add name="ScssAssetHandler" path="*.scss" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" resourceType="File" preCondition="" /> <add name="CoffeeScriptAssetHandler" path="*.coffee" verb="GET" type="BundleTransformer.CoffeeScript.HttpHandlers.CoffeeScriptAssetHandler, BundleTransformer.CoffeeScript" resourceType="File" preCondition="" /> <!-- /Declaration of Bundle Transformer HTTP-handlers --> </handlers> </system.webServer> ... </configuration> 

рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж рд╣реИ рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рд▓реЗрдПрд╕ рдиреБрдЧреЗрдЯ рдкреИрдХреЗрдЬ: рдЬрдм рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбреЙрдЯрд▓реЗрд╕ рдкреИрдХреЗрдЬ рднреА рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ .less рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTTP рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдпрд╣ рдореМрдХрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ LessAssetHandler рд╕реЗ HTTP рд╣реИрдВрдбрд▓рд░ LessAssetHandler рд╕реЗ рдмрджрд▓реЗрдВред

рдЖрдк Web.config рдлрд╝рд╛рдЗрд▓ рд╕реЗ /configuration/bundleTransformer/core/assetHandler рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓ HTTP рдЕрдиреБрд╡рд╛рджрдХ рд╣реЗрдбрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрди рдХреЛрдб рдбрд┐рдлрд╝реЙрд▓реНрдЯ HTTP рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

 <configuration> ... <bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd"> <core> ... <assetHandler clientCacheDurationInDays="365" enableCompression="true" useLastModifiedHeader="true" useETagHeader="true" serverCacheDurationInMinutes="15" useServerCacheSlidingExpiration="false" disableClientCacheInDebugMode="true" disableCompressionInDebugMode="true" /> ... </core> </bundleTransformer> ... </configuration> 

рдЬрд╣рд╛рдВ,

рдЕрдиреБрд╡рд╛рджрдХ


рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: рд▓рд╛рдЗрдЯ рд▓рд╛рдЗрдЯ


рдЕрдкреНрд░реИрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдбреЙрдЯрд▓реЗрд╕рдХреНрд▓рд╛рдпреЛрдиреЗрд▓реА рдирд╛рдордХ рдбреЙрдЯрд▓реЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рд╣рд▓реНрдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ ред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреЗрд╡рд▓ LESS рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ ASP.NET рд╕реЗ рдЬреБрдбрд╝реА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЗрд╕рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, HTTP рд╣реИрдВрдбрд▓рд░)ред

рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рд▓реАрд╕рд▓рд╛рдЗрдЯ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ LESS рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DotlessClientOnly рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рд▓реАрд╕рд▓рд╛рдЗрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ LESS рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдиреНрд╕рдлрд╝реЙрд░реНрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рд▓рд╛рдЗрдЯ рдореЙрдбреНрдпреВрд▓, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рд╣рд▓реНрдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ


рд╕рдВрд╕реНрдХрд░рдг 1.5.5 рд╕реЗ рдкрд╣рд▓реЗ, рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SassAndCfish.JavaScript рд╕рдВрд╕реНрдХрд░рдг 2.0.2.0 рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, SassAndCfish.JavaScript рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИ рдФрд░ рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рд╕рдВрд╕реНрдХрд░рдг 1.1.3) рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдХреЙрдлрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.3 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

minimizers


рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдмрдирд╛рддреЗ рд╕рдордп рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХрдИ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рд╕реЗ рдЪреБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдерд╛ред рдЙрддреНрдкрд╛рдж рдХреЗ рд╢реБрд░реБрдЖрддреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдПрдбреЗрдкреНрдЯрд░ рдХреЗрд╡рд▓ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ 2 рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдереЗ: рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЕрдЬрд╛рдХреНрд╕ рдорд┐рдирд┐рдлрд╛рдпрд░ рдФрд░ рд╡рд╛рдИрдпреВрдЖрдИ рдХрдВрдкреНрд░реЗрд╕рд░ ред рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдПрдбреЗрдкреНрдЯрд░ рд▓рдЧрднрдЧ рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдХреЛрдб рдиреНрдпреВрдирддрдо рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: рдмрдВрдж


рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдХреНрд▓реЛрдЬрд░ рдореЗрдВ 2 рдЬреЗрдПрд╕ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рд╣реЛрддреЗ рд╣реИрдВ: ClosureRemoteJsMinifier рдФрд░ ClosureLocalJsMinifier ред ClosureRemoteJsMinifier Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗрд╡рд╛ API рд╡реЗрдм рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреНрдпреВрдирддрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдпреА рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ClosureLocalJsMinifier рдиреНрдпреВрдирддрдо рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгред рдлрд╛рдЗрд▓ред

рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: JSMin


рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ред рдЬреЗрдПрд╕рдПрдо рдореЗрдВ рдХреНрд░реЙрдХрдлреЛрд░реНрдбрдЬрд╛рдЗрдорд┐рдирд┐рдлрд╛рдпрд░ рдЬреЗрдПрд╕ рдХреЛрдб рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдПрдбреЙрдкреНрдЯрд░ рд╣реИред CrockfordJsMinifier JSMin рдХреЗ C # рдкреЛрд░реНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдХрд┐ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ JS рдХреЛрдб рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рд╣реИ , рдЬреЛ рдбрдЧрд▓рд╕ рдХреНрд░реЙрдХрдлреЛрд░реНрдб рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред 22 рдордИ 2007 рдХреЗ JSMin рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ C # рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: UglifyJS


рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.UglifyJs рдореЗрдВ UglifyJsMinifier JS рдХреЛрдб UglifyJsMinifier ред UglifyJsMinifier JS рдХреЛрдб рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ Node.js рд╕рдореБрджрд╛рдп рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, UglifyJS (рд╕рдВрд╕реНрдХрд░рдг 1.3.3 рдЕрдм рд╕рдорд░реНрдерд┐рдд рд╣реИ)ред

рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: рдкреИрдХрд░


рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдкреИрдХрд░ рдореЗрдВ рдПрдбрд╡рд░реНрдбреНрд╕рдЬрд╛рдЗрдорд┐рдирд┐рдлрд╛рдпрд░ рдЬреЗрдПрд╕ рдХреЛрдб EdwardsJsMinifier ред EdwardsJsMinifier рдбреАрди рдПрдбрд╡рд░реНрдбреНрд╕ рдкреИрдХрд░ рд╕рдВрд╕реНрдХрд░рдг 3.0 JS рдиреНрдпреВрдирддрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдкреИрдХрд░ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдиреНрдпреВрдирддрдо рдФрд░ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдмреЗрд╕ 62 рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡реЗрдм рд╕рд░реНрд╡рд░ GZIP / Deflate рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдкрд░ Base62 рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: CSSO


рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдХреЛрд╕реЛ рдореЗрдВ рдХреНрд░реЗрдЬрд╛рдиреЛрд╡реНрд╕реНрдХреА рд╕реАрдПрд╕рдПрд╕рдПрдордирд┐рдлрд╝рд░ рд╕реАрдПрд╕рдПрд╕ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдПрдбрд╛рдкреНрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред KryzhanovskyCssMinifier CSS- minimalizer CSSO рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ (рд╕рдВрд╕реНрдХрд░рдг 1.2.18 рдЕрдм рд╕рдорд░реНрдерд┐рдд рд╣реИ)ред рдпрд╣ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ BEM рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛: рд╕рд░реНрдЧреЗрдИ рдХреНрд░рд┐рдЬрд╝рд╛рдиреЛрд╡реНрд╕реНрдХреА рдФрд░ рд╡рд┐рдЯрд╛рд▓реА рд╣рд░рд┐рд╕реЛрд╡ред рдЗрд╕ CSS рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдФрд░ рдЕрдиреНрдп CSS рдиреНрдпреВрдирддрдордХрд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдХрдо рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди CSS рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдПрдХ рд╣реА рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ рд╡рд┐рд▓рдп рдХрд░рдирд╛, рдЕрддрд┐рд╡реНрдпрд╛рдкреА рдЧреБрдгреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛, рдПрдХ рдЕрд▓рдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рдЧреБрдгреЛрдВ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдирд╛, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рд▓рдп рдмреНрд▓реЙрдХ рдФрд░ рдЖрджрд┐)ред "рдорд╢реАрди" (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░) рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рдХрдо рдХрд░рддреЗ рд╕рдордп рд╕реНрдЯреНрд░рдХреНрдЪрд░рд▓ рдорд┐рдирд┐рдорд╛рдЗрдЬреЗрд╢рди рдПрдХ рдЙрдЪреНрдЪ рдбрд┐рдЧреНрд░реА рд╕рдВрдкреАрдбрд╝рди рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдХреЛ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: CSSO ECMAScript 5 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореБрдЭреЗ .NET рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреЗрдПрд╕ рдЗрдВрдЬрди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреЗред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВрдиреЗ .NET рдХреЗ рд▓рд┐рдП V8 JS рдЗрдВрдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ - Noesis Javascript .NET ред рдпрд╣ рдЗрдВрдЬрди рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ 2 рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ: 32-рдмрд┐рдЯ рдФрд░ 64-рдмрд┐рдЯред рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░рдг, рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдХреЛрд╕реЛ рдореЙрдбреНрдпреВрд▓ 2 рдиреБрдЧреЗрдЯ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рд╕реАрдПрд╕рдУ ред X 86 рдФрд░ рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рд╕реАрдПрд╕рдУ ред X 64 ред msvcp100.dll рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ .NET рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, Microsoft Visual C ++ 2010 рд╕реЗ msvcp100.dll рдФрд░ msvcr100.dll рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдпреЗ рдЕрд╕реЗрдВрдмрд▓реА рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк Microsoft Visual Studio + 2010 Redistributable Package ( x86 , x64 ) рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░: рд╡реЗрдмрдЧреНрд░реЗ


рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ред WG рдореЗрдВ WgCssMinifier CSS WgCssMinifier ред WgCssMinifier Microsoft рдХреЗ рд╡реЗрдмрдЧреНрд░реЗрдЬрд╝ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдПрдХ рдЕрд░реНрде рд╕реАрдПрд╕рдПрд╕ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CSS рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред CSSG рдХреА рддрд░рд╣ WebGrease рдХрд╛ рдЕрд░реНрде рд╕реАрдПрд╕рдПрд╕ рдиреНрдпреВрдирддрдо, рд╕рдВрд░рдЪрдирд╛рддреНрдордХ CSS рдиреНрдпреВрдирддрдордХрд░рдг рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓, рдмрдВрдбрд▓рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░.рдЬреА рдиреВрдЧреЗрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрд▓реНрдлрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗрдмрдЧреНрд░реЗрд╕ рдХреЗ рдореМрдЬреВрджрд╛ рд╕рдВрд╕реНрдХрд░рдг (рд╕рдВрд╕реНрдХрд░рдг 1.1.0) рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕ рдиреНрдпреВрдирддрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╣рд╛рд╡рд░реНрдб рдбреЙрдХрд┐рдВрдЧ рдХреА рд╡реАрдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ "рдмрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд┐рдВрдЧ" рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ


рдкрд╣рд▓реЗ рддреАрди рд╕реЗ рд╕рдмрд╕реЗ рднрд░реЛрд╕реЗрдордВрдж рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝рд░ рдиреНрдпреВрдирддрдо рд╣реИрдВ: Microsoft Ajax Minifier, YUI рдХрдВрдкреНрд░реЗрд╕рд░ рдФрд░ Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ (JS-code рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдХреА рдбрд┐рдЧреНрд░реА рдореЗрдВ рдЕрдЧреНрд░рдгреА)ред рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд рд╣реИ, рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВред

рдирдП рдиреНрдпреВрдирддрдо рдЬреЛ Node.js рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ: UglifyJS рдФрд░ CSSO рдкрд╣рд▓реЗ рддреАрди рдХреЗ рдиреНрдпреВрдирддрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪреНрдЪрддрд░ рд╕рдВрдкреАрдбрд╝рди рджреЗрддреЗ рд╣реИрдВ (UglifyJS рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ Simple рдореЛрдб рдореЗрдВ Google рдмрдВрдж рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕ рд╕реНрддрд░ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдирд╣реАрдВ рд╣реИ ред

рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ рдиреНрдпреВрдирддрдо: JSMin рдФрд░ рдкреИрдХрд░, рдЕрдм рдХреЗрд╡рд▓ рд╕рд░рд▓ JS рдХреЛрдб рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡реЗ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реНрддрд░ рджреЛрдиреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдзреБрдирд┐рдХ рдиреНрдпреВрдирддрдо рд╕реЗ рд╣рд╛рд░ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рддреНрд░реБрдЯрд┐ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЕрдиреНрдп рдиреНрдпреВрдирддрдо рдХреЗ рд╕рд╛рде рд╡реЗрдмрдЧреНрд░реЗрд╕реНрдЯ рдХреЗ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╕реАрдПрд╕рдПрд╕ рдиреНрдпреВрдирддрдо рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХреАред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реАрдПрд╕рдПрд╕рдУ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдб рд╕рдВрдкреАрдбрд╝рди рдХреА рдПрдХ рдмрдбрд╝реА рдбрд┐рдЧреНрд░реА рд╣реИред

рд╕реЗрдЯрд┐рдВрдЧреНрд╕


рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ Web.config рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рдореНрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ (рдпрджрд┐ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ):

 <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- Declaration of Bundle Transformer configuration section group --> <sectionGroup name="bundleTransformer"> <section name="core" type="BundleTransformer.Core.Configuration.CoreSettings" /> <section name="less" type="BundleTransformer.LessLite.Configuration.LessLiteSettings" /> <section name="sassAndScss" type="BundleTransformer.SassAndScss.Configuration.SassAndScssSettings" /> <section name="microsoftAjax" type="BundleTransformer.MicrosoftAjax.Configuration.MicrosoftAjaxSettings" /> <section name="yui" type="BundleTransformer.Yui.Configuration.YuiSettings" /> <section name="closure" type="BundleTransformer.Closure.Configuration.ClosureSettings" /> <section name="uglify" type="BundleTransformer.UglifyJs.Configuration.UglifySettings" /> <section name="packer" type="BundleTransformer.Packer.Configuration.PackerSettings" /> <section name="csso" type="BundleTransformer.Csso.Configuration.CssoSettings" /> </sectionGroup> <!-- /Declaration of Bundle Transformer configuration section group --> ... </configSections> ... <!-- Bundle Transformer configuration settings --> <bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd"> <core enableTracing="false" jsFilesWithMicrosoftStyleExtensions="MicrosoftAjax.js,MicrosoftMvcAjax.js, MicrosoftMvcValidation.js,knockout-$version$.js" useEnableOptimizationsProperty="true"> <css defaultMinifier="NullMinifier"> <minifiers> <add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" /> <add name="MicrosoftAjaxCssMinifier" type="BundleTransformer.MicrosoftAjax.Minifiers.MicrosoftAjaxCssMinifier, BundleTransformer.MicrosoftAjax" /> <add name="YuiCssMinifier" type="BundleTransformer.Yui.Minifiers.YuiCssMinifier, BundleTransformer.Yui" /> <add name="KryzhanovskyCssMinifier" type="BundleTransformer.Csso.Minifiers.KryzhanovskyCssMinifier, BundleTransformer.Csso" /> <add name="WgCssMinifier" type="BundleTransformer.WG.Minifiers.WgCssMinifier, BundleTransformer.WG" /> </minifiers> <translators> <add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" /> <add name="LessTranslator" type="BundleTransformer.LessLite.Translators.LessTranslator, BundleTransformer.LessLite" enabled="true" /> <add name="SassAndScssTranslator" type="BundleTransformer.SassAndScss.Translators.SassAndScssTranslator, BundleTransformer.SassAndScss" enabled="true" /> </translators> </css> <js defaultMinifier="NullMinifier"> <minifiers> <add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" /> <add name="MicrosoftAjaxJsMinifier" type="BundleTransformer.MicrosoftAjax.Minifiers.MicrosoftAjaxJsMinifier, BundleTransformer.MicrosoftAjax" /> <add name="YuiJsMinifier" type="BundleTransformer.Yui.Minifiers.YuiJsMinifier, BundleTransformer.Yui" /> <add name="ClosureRemoteJsMinifier" type="BundleTransformer.Closure.Minifiers.ClosureRemoteJsMinifier, BundleTransformer.Closure" /> <add name="ClosureLocalJsMinifier" type="BundleTransformer.Closure.Minifiers.ClosureLocalJsMinifier, BundleTransformer.Closure" /> <add name="CrockfordJsMinifier" type="BundleTransformer.JsMin.Minifiers.CrockfordJsMinifier, BundleTransformer.JsMin" /> <add name="UglifyJsMinifier" type="BundleTransformer.UglifyJs.Minifiers.UglifyJsMinifier, BundleTransformer.UglifyJs" /> <add name="EdwardsJsMinifier" type="BundleTransformer.Packer.Minifiers.EdwardsJsMinifier, BundleTransformer.Packer" /> </minifiers> <translators> <add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" /> <add name="CoffeeScriptTranslator" type="BundleTransformer.CoffeeScript.Translators.CoffeeScriptTranslator, BundleTransformer.CoffeeScript" enabled="true" /> </translators> </js> <assetHandler clientCacheDurationInDays="365" enableCompression="true" useLastModifiedHeader="true" useETagHeader="true" serverCacheDurationInMinutes="15" useServerCacheSlidingExpiration="false" disableClientCacheInDebugMode="true" disableCompressionInDebugMode="true" /> </core> <less useNativeMinification="false" severity="0" /> <sassAndScss useNativeMinification="false" /> <microsoftAjax> <css allowEmbeddedAspNetBlocks="false" colorNames="Strict" commentMode="Important" ignoreErrorList="" indentSize="4" minifyExpressions="true" outputMode="SingleLine" blocksStartOnSameLine="NewLine" preprocessorDefineList="" termSemicolons="false" severity="0" /> <js allowEmbeddedAspNetBlocks="false" collapseToLiteral="true" debugLookupList="Debug,$Debug,WAssert,Msn.Debug,Web.Debug" evalTreatment="Ignore" ignoreConditionalCompilation="false" ignoreErrorList="" indentSize="4" inlineSafeStrings="true" knownGlobalNamesList="" localRenaming="CrunchAll" macSafariQuirks="true" minifyCode="true" noAutoRenameList="$super" outputMode="SingleLine" blocksStartOnSameLine="NewLine" preprocessorDefineList="" preserveFunctionNames="false" preserveImportantComments="true" removeFunctionExpressionNames="true" removeUnneededCode="true" renamePairs="" strictMode="false" stripDebugStatements="true" termSemicolons="false" severity="0"/> </microsoftAjax> <yui> <css compressionType="Standard" removeComments="true" lineBreakPosition="-1" /> <js compressionType="Standard" obfuscateJavascript="true" preserveAllSemicolons="false" disableOptimizations="false" ignoreEval="false" severity="0" lineBreakPosition="-1" encoding="UTF8" threadCulture="en-us" /> </yui> <closure> <js> <remote closureCompilerServiceApiUrl="http://closure-compiler.appspot.com/compile" compilationLevel="Simple" prettyPrint="false" excludeDefaultExterns="false" severity="0" /> <local javaVirtualMachinePath="" closureCompilerApplicationPath="" compilationLevel="Simple" prettyPrint="false" languageSpec="EcmaScript3" thirdParty="true" processJqueryPrimitives="false" processClosurePrimitives="false" severity="0" /> </js> </closure> <uglify> <js> <parser strictSemicolons="false" /> <mangler mangle="true" topLevel="false" defines="" except="" noFunctions="false" /> <squeezer makeSequences="true" deadCode="true" unsafe="false" /> <codeGenerator beautify="false" indentStart="0" indentLevel="4" quoteKeys="false" spaceColon="false" asciiOnly="false" /> </js> </uglify> <packer> <js shrinkVariables="true" base62Encode="false" /> </packer> <csso> <css disableRestructuring="false" /> </csso> </bundleTransformer> <!-- /Bundle Transformer configuration settings --> ... </configuration> 

рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд╕рдореАрдХреНрд╖рд╛ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдиреНрдпрд╛рд╕ рдЦрдВрдб рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ bundleTransformer, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕рдордп рд╕реАрдорд┐рдд рдЕрдкрдиреЗ рдЖрдк рдирдП рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ:

рдЙрдкрд░реЛрдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдо рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рди рднреА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рдиреНрдпреВрдирддрдо рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рднреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП bundleTransformerIntelliSense рд╕рдорд░реНрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :

Web.config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрдВрдбрд▓ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IntelliSense рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

рдирд┐рд╖реНрдХрд░реНрд╖


рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдмреА / рдПрдо рдФрд░ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ B / M рдХреЗрд╡рд▓ ASP.NET MVC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЕрдиреНрдп ASP.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ B / M рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╡реЗрдм рдлреЙрд░реНрдо рдФрд░ рд╡реЗрдм рдкреЗрдЬ (рд▓рд┐рдВрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд▓реЗрдЦ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ)ред

B / M рдФрд░ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.0 рдХреЗ рддрд╣рдд рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП ASP.NET MVC 3 рдФрд░ ASP.NET рд╡реЗрдм рдкреНрд░рдкрддреНрд░ 4.0 рдореЗрдВ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред

рд╕рдВрджрд░реНрдн


  1. рдХреЛрдбрдкреНрд▓реЗрдХреНрд╕ рдмрдВрдбрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдкреГрд╖реНрда
  2. рдкреГрд╖реНрда рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ ASP.NET рд╡реЗрдм рдЕрдиреБрдХреВрд▓рди рдлреНрд░реЗрдорд╡рд░реНрдХ CodePlex рдкрд░
  3. рд╣рд╛рд╡рд░реНрдб рдбреЙрд░реНрдХрд┐рдВрдЧ рдХреА рд╡реАрдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ рдмрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд┐рдВрдЧ
  4. - ┬лBuild high-performing HTML 5 applications easily with ASP.NET 4.5┬╗
  5. ┬лBundling and Minification┬╗
  6. ┬лAdding Bundling and Minification to Web Forms┬╗ ( )
  7. ┬лAdding Web Optimization to a Web Pages Site┬╗ ( )
  8. ┬лKeeping in touch with the Web optimization team┬╗

Source: https://habr.com/ru/post/In152051/


All Articles