捆绑JavaScript课程Uncaught SyntaxError:意外的令牌<

MR.*_*ABC 5 javascript asp.net-mvc-4 bundling-and-minification

使用mvc4课程的捆绑功能

未捕获的SyntaxError:意外的令牌<

在装载.随着debug="true"一切作品就像除外.

如何解决错误或者我是否可以仅针对脚本禁用捆绑功能?

已解决
重命名捆绑包名称与任何目录不匹配

Gri*_*inn 8

在回答导致此错误的原因的问题之前,必须先确定错误发生的位置.捆绑时代码语法的唯一区别是它被缩小了.一个非常简单的方法是使用a Bundle而不是ScriptBundle:

        var thirdParty = new Bundle("~/bundles/thirdParty").Include(
            "~/Scripts/jquery-{version}.js",
            "~/Scripts/bootstrap.js",
            "~/Scripts/jquery-ui-{version}.js",
            "~/Scripts/jquery.mockjson.js",
            "~/Scripts/jQuery.XDomainRequest.js",
            "~/Scripts/knockout-{version}.js"
            );

        thirdParty.Transforms.Clear();

        bundles.Add(thirdParty);
Run Code Online (Sandbox Code Playgroud)

现在,如果您有多个JavaScript包,请逐一为它们执行此操作,直到您拥有罪魁祸首包.

我发现调试这些问题的唯一方法是将你的捆绑包分成两半以进一步分解它:

        var thirdParty1 = new Bundle("~/bundles/thirdParty1").Include(
            "~/Scripts/jquery-{version}.js",
            "~/Scripts/bootstrap.js",
            "~/Scripts/jquery-ui-{version}.js"
            );

        bundles.Add(thirdParty1);

        var thirdParty2 = new ScriptBundle("~/bundles/thirdParty2").Include(
            "~/Scripts/jquery.mockjson.js",
            "~/Scripts/jQuery.XDomainRequest.js",
            "~/Scripts/knockout-{version}.js"
            );

        bundles.Add(thirdParty2);
Run Code Online (Sandbox Code Playgroud)

请注意,我们只禁用了两个捆绑中的一个的缩小 - thirdParty1.请确保并更新您@Scripts.Render的指向您的新捆绑包.当你构建和重新加载时,你将继续得到错误,或者你不会,然后将知道哪一半包含麻烦的代码.但是要确保并在两个方面进行测试,在我的例子中缩小thirdParty1和消除thirdParty2,反之亦然,以确定其他事情不会发生.您还可能希望保留DevTools或您打开的任何浏览器调试器,并查看捆绑包的来源以确保它们按预期运行.

如果你有很多脚本的话,继续thirdParty1从minified bundle(在我的例子中)中移动脚本(thirdParty2一次一个)或者一个块中的未组合的bundle().请记住在中间重建,并注意不要更改脚本的包含顺序.

这应该至少让你到达有问题的文件 - 并希望搜索"<"将得到你的答案.

希望有所帮助.