在jquery-ui中导致无效调用错误的捆绑优化

时间:2015-12-07 16:47:20

标签: c# asp.net-mvc jquery-ui optimization bundle

我遇到了最奇怪的错误,它正在把我拉到墙上。目前我有以下两个捆绑......

 var jquery = new ScriptBundle("~/bundles/jquery").Include(
                "~/Scripts/jquery-{version}.js"
                , "~/Scripts/jquery-ui-{version}.js"
                , "~/Scripts/materialize/materialize.js"
                , "~/Scripts/knockout-{version}.debug.js"
                , "~/Scripts/knockout-{version}.js"
                , "~/Scripts/jquery.signalR-{version}.js");

var jsfiles = new ScriptBundle("~/bundles/Assets/js")
                  .IncludeDirectory("~/Assets/js", "*.js", true);

   bundles.IgnoreList.Ignore("~/Scripts/knockout-{version}.js", OptimizationMode.WhenDisabled);

在ASSETS文件夹中有以下文件

jquery-ui-1.10.3.custom.min.js"

当我在本地调试和运行时,一切都很好。但是当我开启

BundleTable.EnableOptimizations = true;

提到的jquery-ui文件引发了以下错误......

 Uncaught TypeError: Illegal invocation

与此代码块有关

return u?n.isFunction(u[e])&&"_"!==e.charAt(0)?(i=u[e].apply(u,o),i!==u&&i!==t?(s=i&&i.jquery?s.pushStack(i.get()):i,!1):t):n.error("no such method '"+e+"' for "+r+" widget instance")
:n.error("cannot call methods on "+r+" prior to initialization; attempted to call method '"+e+"'")})
:this.each(function(){var t=n.data(this,f);});

我甚至不知道从哪里开始调试呢?缩小引擎能做些什么吗?

1 个答案:

答案 0 :(得分:0)

从内存中,文件名中带有.min资源的javascript资源会自动从捆绑中排除,因此引用JQuery UI文档的未分解版本应修复它(或者,不建议使用 - 删除{{1}来自你现有的文件名。