是否可以保留/不命名匿名函数?

时间:2014-12-19 16:41:25

标签: javascript gruntjs uglifyjs grunt-contrib-uglify

我们开始在我们的网站上使用errorception来追踪在野外发生的错误,并且我给命名的匿名函数a go(http://kangax.github.io/nfe/

基本上,我们的目标是获得有用的堆栈跟踪并为匿名函数/回调提供名称,如下所示:

// anonymous function/callback with no name
$('#some_element').on('click', function(e) {
    // do something
});

// give the anonymous function/callback a name that appears in the stack trace
$('#some_element').on('click', function _name_to_appear_in_st(e) {
    // do something
});

所以我试图在缩小的代码中保留匿名函数的名称(在此示例中为“_name_to_appear_in_st”)。我正在使用grunt / uglify,并尝试将mangle:false传递给选项,但名称不存在。有没有最好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

即可。将名为unused的压缩选项设置为false

options: {
  mangle: false,
  beautify: true,
  compress: { unused: false }
}

Grunt Uglify options documentation没有列出各种压缩选项,但是它表示你可以将选项传递给底层的UglifyJS压缩器。以下是UglifyJS2 Compressor options的完整列表。