MVC4 bundle js缩小错误,这是一个错误吗



我尝试在包含以下函数的javascript文件上运行MVC4捆绑包:

$.fn.ApplyBehavior = function (behaviors) {
    var fns = behaviors.split(",");
    var $t = $(this);
    $.each(fns, function (i, o) {
        try {
            var callfn = eval(o);
            if (typeof callfn == 'function') {
                callfn.call($t);
            }
        } catch (e) {
            // faill silently
            console.log(o);
            console.log(e.stack);
        }
    });
    return this;
}

捆绑包产生的结果如下所示:

$.fn.ApplyBehavior = function(n) {
    var t = n.split(","), i = $(this);
    return $.each(t, function(i, o) {
        try {
            var callfn = eval(o);
            typeof callfn == "function" && callfn.call(i)
        } catch (e) {
            console.log(o), console.log(e.stack)
        }
    }), this
},

问题出现在在输出结果中使用"i"中,我已经在"each"循环中使用了"i",所以很明显,冲突是在调用以"i"作为上下文的函数时

我使用的是最新的NuGet优化包(1.1.0-Beta1),以及通常的捆绑包代码:

bundle = new ScriptBundle("~/scripts/uijs").Include("~/js/ui.web.js");
bundles.Add(bundle);

我做错什么了吗?为什么它没有预先检测到"i"的使用?如果这是一个错误,我该如何报告?

这可能是因为您在代码中使用了注释(//faill静默)。有时捆绑包会在执行此操作时产生错误。

相关内容

最新更新