防止函数名称在缩小时被破坏



我正在使用gulp-uglify ~1.5.4进行javascript缩小,在一个文件中有以下代码:columns[j].colDef.cellRenderer.name === 'dateRenderer'cellRenderer是一个函数,所以cellRenderer.name将返回该函数的名称。 因此,当函数被dateRenderer()时,该代码应该返回true这不会发生,因为在缩小后函数被破坏了。

我发现了这个线程:让gulp-uglify不只破坏一个变量,但我不想告诉uglify要破坏哪些变量,没有其他方法可以解决这个问题吗?就像在AngularJS中一样,我们正在使用$inject服务。

如果您不想指定 uglifyjs 应该从重整中跳过哪些函数名称,请将该函数的名称存储为字符串

function dateRenderer() {
// do something useful
}
dateRenderer.rendererName = 'dateRenderer'
// later ...
var fn = dateRenderer
if (fn.rendererName === 'dateRenderer') {
console.log('ok!')
}

。或者在调用该特定函数后设置其名称:

function dateRenderer() {
dateRenderer.rendererName = 'dateRenderer'

// do something useful
}
// later ...
var fn = dateRenderer
// do something
dateRenderer()
if (fn.rendererName === 'dateRenderer') {
console.log('ok!')
}

相关内容

  • 没有找到相关文章

最新更新