2016-11-07 38 views
0

在測試服務器上部署我的應用程序時,我遇到了一個錯誤,其中UglifyJS確實更改了npm依賴項模塊的函數參數,其中這些參數的名稱很重要;一些函數被動態地調用,並且我使用function-arguments來根據它們的相應名稱將某些值映射到某些函數參數。防止UglifyJS更改函數參數的名稱

是否可以告訴UglifyJS跳過某些模塊或文件等?

回答

1

按照documentation你可以使用mangle選項爲:

  • mangle(默認true) - 通過false跳過重整名稱,或傳遞一個對象到指定重整選項

對象選項:

  • except - 傳遞Array應該從mangling中排除的標識符
  • toplevel - 在頂級作用域中聲明的mangle名稱(默認情況下禁用)。
  • eval - 在使用eval或with的作用域中可見的mangle名稱(默認情況下禁用)。
  • keep_fnames - 默認false。通過true不要破壞函數名稱。用於依賴於Function.prototype.name的代碼。

//tst.js 
var globalVar; 
function funcName(firstLongName, anotherLongName) 
{ 
    var myVariable = firstLongName + anotherLongName; 
} 

UglifyJS.minify("tst.js").code; 
// 'function funcName(a,n){}var globalVar;' 

UglifyJS.minify("tst.js", { mangle: { except: ['firstLongName'] } }).code; 
// 'function funcName(firstLongName,a){}var globalVar;' 

UglifyJS.minify("tst.js", { mangle: { toplevel: true } }).code; 
// 'function n(n,a){}var a;' 

我試圖找到一個選項,裂傷的函數名,並跳過重整的爭論並沒有樂趣,到目前爲止(不是說沒有...)