gpt4 book ai didi

javascript - 防止 UglifyJS 更改函数参数的名称

转载 作者:行者123 更新时间:2023-11-30 00:01:15 27 4
gpt4 key购买 nike

在测试服务器上部署我的应用程序时,我遇到了一个错误,其中 UglifyJS 确实更改了 npm 依赖模块的函数参数,这些参数的名称很重要;一些函数是动态调用的,我正在使用 function-arguments根据相应的名称将某些值映射到某些函数参数。

是否可以告诉 UglifyJS 跳过某些模块或文件等?

最佳答案

根据documentation您可以为此使用 mangle 选项:

  • mangle(默认 true)— 传递 false 以跳过修饰名称,或传递对象以指定修饰选项

对象选项:

  • except - 传递一个 Array 标识符,应该从 mangling 中排除
  • toplevel — 在 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;'

我试图找到一个选项来破坏函数名称并跳过破坏参数,但到目前为止并不有趣(不是说没有......)

关于javascript - 防止 UglifyJS 更改函数参数的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40457416/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com