我正在使用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!')
}