public static void Initialize(BundleManfest manifest) { IBundleTransform jstransformer; IBundleTransform csstransformer; #if DEBUG jstransformer = new PassThroughTransform("text/javascript"); csstransformer = new PassThroughTransform("text/css"); #else jstransformer = new JsMinify(); csstransformer = new CssMinify(); #endif foreach (var bs in manifest.JsBundles) { Bundle jsBundle = new Bundle(bs.SpecKey, jstransformer); jsBundle.Include(bs.FilePaths.ToArray()); BundleTable.Bundles.Add(jsBundle); } foreach (var bs in manifest.CssBundles) { Bundle cssBundle = new Bundle(bs.SpecKey, csstransformer); cssBundle.Include(bs.FilePaths.ToArray()); BundleTable.Bundles.Add(cssBundle); } }
public override void RegisterArea(AreaRegistrationContext context) { if (context == null) throw new ArgumentNullException("context"); context.MapRoute( "Cases_default", "Cases/{*all}", new {Controller = "Cases", action = "Index"}); // Declare BundleTransforms (based on current build configuration) #if DEBUG IBundleTransform jsTrans = new NoTransform("text/javascript"); IBundleTransform cssTrans = new NoTransform("text/css"); #else IBundleTransform jsTrans = new JsMinify(); IBundleTransform cssTrans = new CssMinify(); #endif Bundle casesViewModels = new Bundle("~/Cases/js", jsTrans); casesViewModels.AddFile("~/Areas/Cases/Scripts/cases.js", false); casesViewModels.AddDirectory("~/Areas/Cases/ViewModels","*.js"); BundleTable.Bundles.Add(casesViewModels); Bundle casesCss = new Bundle("~/Cases/css", cssTrans); casesCss.AddFile("~/Areas/Cases/Content/cases.css", false); BundleTable.Bundles.Add(casesCss); }
public static Bundle JsBundle() { IBundleTransform jsTrans; if (Constants.PRODUCTION) { jsTrans = new JsMinify(); } else { jsTrans = new NoTransform("text/javascript"); } var jsBundle = new Bundle("~/Scripts/js", jsTrans); jsBundle.AddFile("~/Scripts/app.js"); jsBundle.AddFile("~/Scripts/foundation.js"); jsBundle.AddFile("~/Scripts/modernizr.foundation.js"); jsBundle.AddFile("~/Scripts/jquery-1.7.2.min.js"); jsBundle.AddFile("~/Scripts/sammy.min.js"); jsBundle.AddFile("~/Scripts/jquery.unobtrusive-ajax.min.js"); jsBundle.AddFile("~/Scripts/knockout-2.1.0.js"); return(jsBundle); }
public void ProcessRequest(HttpContext context) { var filename = context.Request.Path.Substring(0, context.Request.Path.Length - 6) + "js"; string output = GetCachedOutput(context); var file = new FileInfo(HostingEnvironment.MapPath(filename)); if (output == null) { if (file.Exists) { var minifier = new JsMinify(); var bundle = new BundleResponse { Content = File.ReadAllText(file.FullName) }; minifier.Process(bundle); output = bundle.Content; AddCachedOutput(context, output, file.FullName); } else { throw new HttpException(404, "NotFound"); } } context.Response.Write(output); context.Response.ContentType = "text/javascript"; HttpContext.Current.Response.AddFileDependency(file.FullName); HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public); HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.AddYears(1)); }
private static Bundle InitializeBundleJs(string virtualPath, bool minimize) { if (minimize) { IBundleTransform transform = new JsMinify(); var jsMin = new Bundle(virtualPath, transform); return jsMin; } var js = new Bundle(virtualPath); return js; }
public void JsMinifyRemovesCommentsNewLinesAndSpacesTest() { string js = "//I am a comment\r\nfoo = bar;\r\nfoo = yes;"; JsMinify jsmin = new JsMinify(); BundleContext context = new BundleContext(); BundleResponse response = new BundleResponse(js, null); response.Content = js; jsmin.Process(context, response); Assert.AreEqual("foo=bar;foo=yes", response.Content); }
public void JsMinifyRemovesImportantCommentsTest() { string js = "/*!I am important */"; JsMinify jsmin = new JsMinify(); BundleContext context = new BundleContext(); BundleResponse response = new BundleResponse(js, null); response.Content = js; jsmin.Process(context, response); Assert.AreEqual("", response.Content); }
public void JsMinifyDoesNotMinifyInInstrumentationModeTest() { string js = "foo = bar;\r\nfoo = yes;"; JsMinify jsmin = new JsMinify(); BundleContext context = new BundleContext(); context.EnableInstrumentation = true; BundleResponse response = new BundleResponse(js, null); response.Content = js; jsmin.Process(context, response); Assert.AreEqual(js, response.Content); }
public static void init() { IBundleTransform jstransformer; IBundleTransform csstransformer; #if DEBUG jstransformer = new NoTransform("text/javascript"); csstransformer = new NoTransform("text/css"); #else jstransformer = new JsMinify(); csstransformer = new CssMinify(); #endif var bundle = new Bundle("~/Scripts/js", jstransformer); bundle.AddFile("~/Scripts/jquery-1.6.2.js", true); bundle.AddFile("~/Scripts/jquery-ui-1.8.11.js", true); bundle.AddFile("~/Scripts/jquery.validate.unobtrusive.js", true); bundle.AddFile("~/Scripts/jquery.unobtrusive-ajax.js", true); bundle.AddFile("~/Scripts/jquery.validate.js", true); bundle.AddFile("~/Scripts/modernizr-2.0.6-development-only.js", true); bundle.AddFile("~/Scripts/AjaxLogin.js", true); bundle.AddFile("~/Scripts/knockout-2.0.0.debug.js", true); BundleTable.Bundles.Add(bundle); bundle = new Bundle("~/Content/css", csstransformer); bundle.AddFile("~/Content/site.css", true); BundleTable.Bundles.Add(bundle); bundle = new Bundle("~/Content/themes/base/css", csstransformer); bundle.AddFile("~/Content/themes/base/jquery.ui.core.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.resizable.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.selectable.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.accordion.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.autocomplete.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.autocomplete.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.dialog.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.slider.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.tabs.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.datepicker.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.progressbar.css", true); bundle.AddFile("~/Content/themes/base/jquery.ui.theme.css", true); BundleTable.Bundles.Add(bundle); }
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725 public static void RegisterBundles(BundleCollection bundles) { var cssTransformer = new CssTransformer(); var jsTransformer = new JsTransformer(); var cssMinifier = new CssMinify(); var jsMinifier = new JsMinify(); var nullOrderer = new NullOrderer(); // Script Bundles // const string jQueryCdnPath = "http://code.jquery.com/jquery-1.9.1.min.js"; bundles.Add(new ScriptBundle("~/bundles/global") .Include("~/Content/custom/scripts/global.js")); bundles.Add(new ScriptBundle("~/bundles/admin") //.Include("~/Content/scripts/jquery-autogrow-textarea.js") .Include("~/Content/scripts/ace/ace.js") .Include("~/Content/scripts/ace/theme-clouds.js") .Include("~/Content/scripts/ace/mode-html.js")); // Style Bundles var mainBundle = new Bundle("~/Content/global") .Include("~/Content/font-awesome/css/font-awesome.min.css") .Include("~/Content/custom/less/custom.less") .Include("~/Content/custom/less/shCoreDefault.less") .Include("~/Content/custom/less/shThemeDefault.less"); mainBundle.Transforms.Add(cssTransformer); mainBundle.Transforms.Add(cssMinifier); mainBundle.Orderer = nullOrderer; bundles.Add(mainBundle); var adminBundle = new Bundle("~/Content/admin"); adminBundle.Transforms.Add(cssTransformer); mainBundle.Transforms.Add(cssMinifier); adminBundle.Orderer = nullOrderer; bundles.Add(adminBundle); //BundleTable.EnableOptimizations = true; // executing this line will force bundling and minification by overwriting whatever stands in web.config // #if DEBUG // BundleTable.EnableOptimizations = false; // #endif }
public static void PerformBundling() { IBundleTransform jstransformer; IBundleTransform csstransformer; #if DEBUG jstransformer = new NoTransform("text/javascript"); csstransformer = new NoTransform("text/css"); #else jstransformer = new JsMinify(); csstransformer = new CssMinify(); #endif //var bundle = new Bundle("~/WeNeedLibraries", jstransformer); //bundle.AddDirectory("~/ClientSideResources/js/libraries", "*.js"); //BundleTable.Bundles.Add(bundle); var bundle = new Bundle("~/WeNeedPlugIns", jstransformer); var modelsOrdering = new BundleFileSetOrdering("plugins"); modelsOrdering.Files.Add("jquery.fileupload.js"); modelsOrdering.Files.Add(""); BundleTable.Bundles.FileSetOrderList.Add(modelsOrdering); bundle.AddDirectory("~/ClientSideResources/js/plugIns", "*.js"); BundleTable.Bundles.Add(bundle); bundle = new Bundle("~/WeNeedModels", jstransformer); modelsOrdering = new BundleFileSetOrdering("models"); modelsOrdering.Files.Add("WeNeedUHave.Model.js"); BundleTable.Bundles.FileSetOrderList.Add(modelsOrdering); bundle.AddDirectory("~/ClientSideResources/js/models", "*.js"); BundleTable.Bundles.Add(bundle); bundle = new Bundle("~/WeNeedHttp", jstransformer); bundle.AddDirectory("~/ClientSideResources/js/http", "*.js"); BundleTable.Bundles.Add(bundle); bundle = new Bundle("~/WeNeedViewModels", jstransformer); modelsOrdering = new BundleFileSetOrdering("viewModels"); modelsOrdering.Files.Add("WeNeedUHave.ViewModel.js"); modelsOrdering.Files.Add("WeNeedUHave.ViewModel.Payment.js"); BundleTable.Bundles.FileSetOrderList.Add(modelsOrdering); bundle.AddDirectory("~/ClientSideResources/js/viewModels", "*.js"); BundleTable.Bundles.Add(bundle); bundle = new Bundle("~/ClientSideResources/css/1", csstransformer); bundle.AddDirectory("~/ClientSideResources/css", "*.css"); BundleTable.Bundles.Add(bundle); }
public void JsMinifyDoesNotRenameEvalMethods() { // Based of WebFormsUIValidation.js eval usage string js = @"function ValidatorOnLoad() { var i, val; for (i = 0; i < 10; i++) { val = i; eval(""val.evaluationfunction = "" + val.evaluationfunction + "";""); } }"; string minifiedJs = "function ValidatorOnLoad(){for(var val,i=0;i<10;i++)val=i,eval(\"val.evaluationfunction = \"+val.evaluationfunction+\";\")}"; JsMinify jsmin = new JsMinify(); BundleContext context = new BundleContext(); BundleResponse response = new BundleResponse(js, null); response.Content = js; jsmin.Process(context, response); Assert.AreEqual(minifiedJs, response.Content); }
public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-1.*")); bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include( "~/Scripts/jquery-ui*", "~/Scripts/jquery.ui*")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.unobtrusive*", "~/Scripts/jquery.validate*")); bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( "~/Scripts/modernizr-*")); bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css")); bundles.Add(new StyleBundle("~/Content/themes/base/css").Include( "~/Content/themes/base/jquery.ui.core.css", "~/Content/themes/base/jquery.ui.resizable.css", "~/Content/themes/base/jquery.ui.selectable.css", "~/Content/themes/base/jquery.ui.accordion.css", "~/Content/themes/base/jquery.ui.autocomplete.css", "~/Content/themes/base/jquery.ui.button.css", "~/Content/themes/base/jquery.ui.dialog.css", "~/Content/themes/base/jquery.ui.slider.css", "~/Content/themes/base/jquery.ui.tabs.css", "~/Content/themes/base/jquery.ui.datepicker.css", "~/Content/themes/base/jquery.ui.progressbar.css", "~/Content/themes/base/jquery.ui.theme.css")); // MyJs bundles.Add(new Bundle("~/MyJs").Include( "~/Scripts/jquery.nailthumb.1.1.js", "~/Scripts/jquery.mousewheel.js", "~/Scripts/jquery.jscrollpane.js", "~/Scripts/jquery.ba-bbq.js", "~/Scripts/jquery.ba-resize.js" )); // MyCss bundles.Add(new Bundle("~/Content/MyCss").Include( "~/Content/jquery.nailthumb.1.1.css", "~/Content/jquery.jscrollpane1.css" )); var jsTransformer = new JsTransformer(); var cssTransformer = new CssTransformer(); var nullOrderer = new NullOrderer(); var cssMinify = new CssMinify(); var jsMinify = new JsMinify(); // MyCoffee var bundle = new Bundle("~/MyCoffee").Include( "~/Scripts/EntryRenderer.coffee", "~/Scripts/HomePresenter.coffee", "~/Scripts/Application.coffee" ); bundle.Transforms.Add(jsTransformer); if ("true".Equals(ConfigurationManager.AppSettings["CoffeeMinify"])) { bundle.Transforms.Add(jsMinify); } bundle.Orderer = nullOrderer; bundles.Add(bundle); // MySass bundle = new Bundle("~/Content/MySass").Include( "~/Content/enews.sass" ); bundle.Transforms.Add(cssTransformer); if ("true".Equals(ConfigurationManager.AppSettings["SassMinify"])) { bundle.Transforms.Add(cssMinify); } bundle.Orderer = nullOrderer; bundles.Add(bundle); }
public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-1.*")); bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include( "~/Scripts/jquery-ui*", "~/Scripts/jquery.ui*")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.unobtrusive*", "~/Scripts/jquery.validate*")); bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( "~/Scripts/modernizr-*")); bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css")); bundles.Add(new StyleBundle("~/Content/themes/base/css").Include( "~/Content/themes/base/jquery.ui.core.css", "~/Content/themes/base/jquery.ui.resizable.css", "~/Content/themes/base/jquery.ui.selectable.css", "~/Content/themes/base/jquery.ui.accordion.css", "~/Content/themes/base/jquery.ui.autocomplete.css", "~/Content/themes/base/jquery.ui.button.css", "~/Content/themes/base/jquery.ui.dialog.css", "~/Content/themes/base/jquery.ui.slider.css", "~/Content/themes/base/jquery.ui.tabs.css", "~/Content/themes/base/jquery.ui.datepicker.css", "~/Content/themes/base/jquery.ui.progressbar.css", "~/Content/themes/base/jquery.ui.theme.css")); // MyJs bundles.Add(new Bundle("~/MyJs").Include( "~/Scripts/jquery.nailthumb.1.1.js", "~/Scripts/jquery.mousewheel.js", "~/Scripts/jquery.jscrollpane.js", "~/Scripts/jquery.ba-bbq.js", "~/Scripts/jquery.ba-resize.js" )); // MyCss bundles.Add(new Bundle("~/Content/MyCss").Include( "~/Content/jquery.nailthumb.1.1.css", "~/Content/jquery.jscrollpane1.css" )); var jsTransformer = new JsTransformer(); var cssTransformer = new CssTransformer(); var nullOrderer = new NullOrderer(); var cssMinify = new CssMinify(); var jsMinify = new JsMinify(); // MyCoffee var bundle = new Bundle("~/MyCoffee").Include( "~/Scripts/EntryRenderer.coffee", "~/Scripts/HomePresenter.coffee", "~/Scripts/Application.coffee" ); bundle.Transforms.Add(jsTransformer); if ("true".Equals(ConfigurationManager.AppSettings["CoffeeMinify"])) bundle.Transforms.Add(jsMinify); bundle.Orderer = nullOrderer; bundles.Add(bundle); // MySass bundle = new Bundle("~/Content/MySass").Include( "~/Content/enews.sass" ); bundle.Transforms.Add(cssTransformer); if ("true".Equals(ConfigurationManager.AppSettings["SassMinify"])) bundle.Transforms.Add(cssMinify); bundle.Orderer = nullOrderer; bundles.Add(bundle); }
private static void RegisterBundles() { // Declare BundleTransforms (based on current build configuration) #if DEBUG IBundleTransform jsTransformer = new NoTransform("text/javascript"); IBundleTransform cssTransformer = new NoTransform("text/css"); #else IBundleTransform jsTransformer = new JsMinify(); IBundleTransform cssTransformer = new CssMinify(); #endif // Create Bundles BundleTable.Bundles.Add(CreateLogonJsBundle(jsTransformer)); Bundle bundleScripts = new Bundle("~/Scripts/js", jsTransformer); Bundle bundleStyles = new Bundle("~/Content/css", cssTransformer); Bundle bundleJqueryStyles = new Bundle("~/Content/themes/base/css", cssTransformer); #if DEBUG // Disable the automatic use of .min.css files when built in Debug mode bundleStyles.EnableFileExtensionReplacements = false; #endif // Populate bundleScripts (with defaults from RegisterTemplateBundles()) bundleScripts.AddDirectory("~/Scripts", "jquery-*", false, false); bundleScripts.AddDirectory("~/Scripts", "jquery.mobile*", false, false); bundleScripts.AddDirectory("~/Scripts", "jquery-ui*", false, false); bundleScripts.AddDirectory("~/Scripts", "jquery.unobtrusive*", false, false); bundleScripts.AddDirectory("~/Scripts", "jquery.validate*", false, false); bundleScripts.AddDirectory("~/Scripts", "modernizr*", false, false); bundleScripts.AddDirectory("~/Scripts", "jquery.signalR-*", false, false); // Populate bundleScripts (with supplemental files) bundleScripts.AddFile("~/Scripts/logging.js", false); bundleScripts.AddFile("~/Scripts/knockout-2.1.0.js", false); bundleScripts.AddFile("~/Scripts/bootstrap.js", false); bundleScripts.AddFile("~/Scripts/jci.polyfills.js", false); bundleScripts.AddFile("~/Scripts/lib/signals.min.js", false); bundleScripts.AddFile("~/Scripts/lib/crossroads.min.js", false); bundleScripts.AddFile("~/Scripts/require.js", false); bundleScripts.AddFile("~/Scripts/rivets.js", false); bundleScripts.AddFile("~/Scripts/require.config.js", false); bundleScripts.AddFile("~/Scripts/webapi.ajax.js", false); bundleScripts.AddFile("~/Scripts/webapi.csrf.js", false); bundleScripts.AddFile("~/Scripts/webapi.errors.js", false); bundleScripts.AddFile("~/Scripts/webapi.routes.js", false); // Populate bundleStyles (with defaults from RegisterTemplateBundles()) bundleStyles.AddFile("~/Content/site.css", false); bundleStyles.AddDirectory("~/Content/", "jquery.mobile*", false, false); // Populate bundleStyles (with supplemental files) bundleStyles.AddFile("~/Content/bootstrap.css", false); // Populate bundleJqueryStyles (with defaults from RegisterTemplateBundles()) bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.core.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.resizable.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.selectable.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.accordion.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.autocomplete.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.button.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.dialog.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.slider.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.tabs.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.datepicker.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.progressbar.css", false); bundleJqueryStyles.AddFile("~/Content/themes/base/jquery.ui.theme.css", false); // Add Bundles to BundleTable.Bundles BundleTable.Bundles.Add(bundleScripts); BundleTable.Bundles.Add(bundleStyles); BundleTable.Bundles.Add(bundleJqueryStyles); }
public JsMinifyCompiler() { _minify = new JsMinify(); }