I'm have trouble with Bundleing and Minification..
Its a set up, if I have M&B on, it gets minified and added, I have ordering working correctly.. when M&B is off, eveything works fine. when M&B is on, everything is minified and loooks like it's created in the right order. but one of my scripts crashes when it's loaded... but only when bundled...or when Min&Bundled...
Here are the ones in question
<script type="text/javascript" src="@Url.JScript("jquery-ui-1.8.9.custom.min.js")" ></script>
<script type="text/javascript" src="@Url.JScript("jquery.validate.js")"></script>
<script type="text/javascript" src="@Url.JScript("jquery.unobtrusive-ajax.min.js")" ></script>
<script type="text/javascript" src="@Url.JScript("grid.locale-en.js")"></script>
<script type="text/javascript" src="@Url.JScript("jquery.jqGrid.js")"></script>
<script type="text/javascript" src="@Url.JScript("grid.addons.js")"></script> <<<----- this one dies at load time when minified!!!
When its minified and grid.addon.js and gets loaded, it give the following error. Object doesn't support this property or method.
Here is the non minified bits in question
$.jgrid.extend({
// This is the ols search Filter method used in navigator.
searchGrid : function (p) {
The error I get says that $.jgrid does not have an extend method.. When I debug and look at the loaded object, it is correct there is no .extend method on it.
But when M&B is off, everything works fine.
Here is my code for m&B in Global.asax.cs
public static void RegisterBundles(BundleCollection bundles)
{
BundleTable.EnableOptimizations = true;
// http://stackoverflow.com/questions/12487742/asp-net-mvc4-bundling-minification-min-js-files-excluded-from-scripts-render
BundleTable.Bundles.IgnoreList.Clear(); // apparently, IgnoreList included .min.js in debug
BundleTable.Bundles.IgnoreList.Ignore(".intellisense.js", OptimizationMode.Always);
BundleTable.Bundles.IgnoreList.Ignore("-vsdoc.js", OptimizationMode.Always);
BundleTable.Bundles.IgnoreList.Ignore(".debug.js", OptimizationMode.Always);
var styles = new StyleBundle("~/Bundling/RzrRootBundledcss").Include(
"~/Assets/CSS/Jcdc.css",
"~/Assets/CSS/jqueryslidemenu.css",
"~/Assets/CSS/ViewDetails.css",
"~/Assets/CSS/Site.css",
"~/Assets/CSS/UserInformation.css",
"~/Assets/CSS/ui.jqgrid.blue.css",
"~/Assets/CSS/blue/jquery-ui-1.8.9.custom.css",
"~/Assets/CSS/cupertino/jquery-ui-1.8.5.custom.css",
"~/Assets/CSS/Blueprint.css",
"~/Assets/CSS/BlueSite.css",
"~/Assets/CSS/timepick.css",
"~/Assets/CSS/ui.spinner.css"
).ForceOrdered();
INetLog log = ObjectFactory.GetInstance<INetLog>();
log.Debug("done mini and budle css");
//ScriptBundle
Bundle js = new Bundle("~/Bundling/RzrRootBundledjs");
//js.Orderer = new AsIsBundleOrderer();
BundleFileSetOrdering bundleFileSetOrdering1 = new BundleFileSetOrdering("RzrRootBundledjs");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery-1.4.2.min.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery-ui-1.8.9.custom.min.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.validate.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.unobtrusive-ajax.min.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/grid.locale-en.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.jqGrid.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/grid.addons.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/json2.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.validate.unobtrusive.jcdc.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/JcdcInputValidation.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.hoverIntent.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jqueryslidemenu.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.corner.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.ezpz_tooltip.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/../JQGrid/JQGridDefaults.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/JCDCEdit.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/JCDCAjaxNew.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.maskedinput-1.2.2.min.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.alphanumeric.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/additional-methods.js?version=1.0");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.livequery.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.blockUI.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/jquery.timePicker.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/knockout.debug.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/knockout.mapping-latest.debug.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/knockout.validation.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/knockout.viewmodel.2.0.0.min.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/knockout-deferred-updates.js");
bundleFileSetOrdering1.Files.Add("~/Assets/JavaScript/ui.spinner.js");
bundleFileSetOrdering1.Files.Add("~/Content/ASPNetSpellInclude/include.js");
bundles.FileSetOrderList.Clear();
BundleTable.Bundles.FileSetOrderList.Insert( 0, bundleFileSetOrdering1 );
//ScriptBundle js = new ScriptBundle("~/Bundling/RzrRootBundledjs");
//js.Orderer = new AsIsBundleOrderer();
js.Include("~/Assets/JavaScript/jquery-1.4.2.min.js")
.Include("~/Assets/JavaScript/jquery-ui-1.8.9.custom.min.js")
.Include("~/Assets/JavaScript/jquery.validate.js")
.Include("~/Assets/JavaScript/jquery.unobtrusive-ajax.min.js" )
.Include("~/Assets/JavaScript/grid.locale-en.js")
.Include( "~/Assets/JavaScript/jquery.jqGrid.js")
.Include( "~/Assets/JavaScript/grid.addons.js")
.Include("~/Assets/JavaScript/json2.js")
.Include("~/Assets/JavaScript/jquery.validate.unobtrusive.jcdc.js" )
.Include("~/Assets/JavaScript/JcdcInputValidation.js" )
.Include("~/Assets/JavaScript/jquery.hoverIntent.js" )
.Include("~/Assets/JavaScript/jqueryslidemenu.js" )
.Include("~/Assets/JavaScript/jquery.corner.js")
.Include("~/Assets/JavaScript/jquery.ezpz_tooltip.js" )
.Include("~/Assets/JQGrid/JQGridDefaults.js")
.Include("~/Assets/JavaScript/JCDCEdit.js")
.Include("~/Assets/JavaScript/JCDCAjaxNew.js")
.Include("~/Assets/JavaScript/jquery.maskedinput-1.2.2.min.js" )
.Include("~/Assets/JavaScript/jquery.alphanumeric.js")
.Include("~/Assets/JavaScript/additional-methods.js?version=1.0")
.Include("~/Assets/JavaScript/jquery.livequery.js")
.Include("~/Assets/JavaScript/jquery.blockUI.js")
.Include("~/Assets/JavaScript/jquery.timePicker.js")
.Include("~/Assets/JavaScript/knockout.debug.js")
.Include("~/Assets/JavaScript/knockout.mapping-latest.debug.js")
.Include("~/Assets/JavaScript/knockout.validation.js")
.Include("~/Assets/JavaScript/knockout.viewmodel.2.0.0.min.js")
.Include("~/Assets/JavaScript/knockout-deferred-updates.js")
.Include("~/Assets/JavaScript/ui.spinner.js")
.Include("~/Content/ASPNetSpellInclude/include.js");
log.Debug("done minify and bundle script");
bundles.Add(styles);
bundles.Add(js);
//BundleTable.EnableOptimizations = true;
log.Debug("done generating bundles");
}
}
and here is my injection from the layout page.
@Styles.Render("~/Bundling/RzrRootBundledcss");
@Scripts.Render("~/Bundling/RzrRootBundledjs");
I looked into Jquery.JQgrid.js and it uses the .Extend method inside it's own code.. now i'm really confused.
So I have 2 questions...
- Anyone know what's going on that I'm clearly not fuly grasping?, or can give me hints as to wher to look? I'm starting to suspect minification is renaming the extend method...no idea how to fix that.
- How can I force the debugger to break on the loading
Any help or hints you can give would be greatly aprpeciated...