[英]Prevent function name to get mangled while minification
我正在用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!') }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.