我目前正在重构网站的 javascript 部分,现在我使用 Browserify 将一些脚本捆绑在一起。生成的脚本与使用 SquishIt 的其他资源捆绑在一起。在调试模式下,当 SquishIt 没有将所有脚本捆绑在一起时,一切似乎都可以正常工作,但是当在生产环境中运行时,SquishIt 将所有内容捆绑在一起,我从包的 Browserify 部分收到错误。错误是抱怨r
下面没有长度属性(见第 18 行)。这部分代码是 Browserify 在打包脚本时创建的。
(function e(t, n, r) {
function s(o, u) {
if (!n[o]) {
if (!t[o]) {
var a = typeof require == "function" && require;
if (!u && a) return a(o, !0);
if (i) return i(o, !0);
var f = new Error("Cannot find module '" + o + "'");
throw f.code = "MODULE_NOT_FOUND", f
}
var l = n[o] = {
exports: {}
};
t[o][0].call(l.exports, function(e) {
var n = t[o][1][e];
return s(n ? n : e)
}, l, l.exports, e, t, n, r)
}
return n[o].exports
}
var i = typeof require == "function" && require;
for (var o = 0; o < r.length; o++) s(r[o]);
return s
})({
我真的想不出使用 SquishIt 捆绑所有脚本会破坏浏览器脚本的逻辑。这可能是什么原因?这个要点显示了整个源代码,以防万一。
我在 ASP.NET 方面(在捆绑中)没有更改任何内容,我的“Head.ascx”的相关部分如下所示:
Bundle.JavaScript()
.Add(Assets.JavaScript.GetUrl("main.js").ToString())
.Add(Assets.JavaScript.GetUrl("Plugins/raphael-min.js").ToString())
.Add(Assets.JavaScript.GetUrl("Plugins/vector_map.js").ToString())
// more ...
.Render("~/Content/"+Assets.VersionString+"/Scripts/Combined/combined.js")