【问题标题】:Grunt Uglify breaks ajax callGrunt Uglify 中断 ajax 调用
【发布时间】:2014-10-02 14:50:40
【问题描述】:

我有一个函数:

    function createAddressList(url) {
        $.ajax({
            url: url,
            cache: false,
            async: true
        }).done(function (msg) {
            alert("Data Saved: " + msg);
        });
    }

将其转换为:

function g(b){a.ajax(http://localhost/testpage/b,cache:!1,async:!0).done(function(a){alert("Data Saved: "+a)})}

这会导致错误,

铬:

Uncaught SyntaxError: Unexpected token :

火狐:

SyntaxError: missing ) after argument list
...ion g(b){a.ajax(http://localhost/testpage/b,cache:!1,async:!0).done(f

我该如何解决这个问题?非常感谢您的帮助

【问题讨论】:

  • 我的建议是运行 JS 而不对其进行丑化,看看您是否在控制台中遇到任何错误。
  • 那么缩小的代码完全被破坏了。将其报告为错误。即使你的代码是错误的,Uglify 至少应该报告一个错误并且不会产生更糟糕的代码。
  • 不缩小,一切正常

标签: jquery ajax gruntjs minify uglifyjs


【解决方案1】:

将 $ 重命名为 jQuery 时使用 mangle 选项产生异常:

1) 使用 jQuery 代替 $

function createAddressList(url) {
        jQuery.ajax({
            url: url,
            cache: false,
            async: true
        }).done(function (msg) {
            alert("Data Saved: " + msg);
        });
    }

2) 配置丑化

grunt.initConfig({
  uglify: {
    options: {
      mangle: {
        except: ['jQuery']
      }
    },
    my_target: {
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2018-11-27
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多