gpt4 book ai didi

javascript - 使用 UglifyJS (Brunch) 压缩 Object.prototype.functions

转载 作者:行者123 更新时间:2023-11-28 08:21:29 27 4
gpt4 key购买 nike

我最近从使用手写编译脚本和 Google Closure Compiler 转向使用 Brunch,我或多或少被迫使用 UglifyJS。

我有配置选项

uglify:
mangle:
toplevel: true
eval: true
functions: true
compress: true

我的类使用正在构建的原型(prototype)风格。

即。

function Car() { }

Car.prototype.startEngine = function() { }

然后(c 在全局范围内并被调用一次)

var c = new Car();
car.startEngine();

添加 toplevel:true 配置选项会破坏 Car,但不会破坏任何原型(prototype)函数(即 startEngine)。

我不想更改我的类结构,但是我可以让 UglifyJS 修改这些函数名称吗?

谢谢:)

最佳答案

Uglify 没有能力破坏对象属性。但是,通过切换到带有变量的括号表示法,您也许可以更接近您正在寻找的内容。

function Car() { }

var startEngine = 'startEngine'; // could actually be any random string or number
Car.prototype[startEngine] = function() { }

var c = new Car();
car[startEngine]();

这依赖于您的第一个代码段和第二个代码段都可以访问 startEngine 变量,因此根据您的项目结构,您可能必须以等效方式重新声明变量或提出其他广告素材跨范围保持其值(value)的方法。

答案在Mangle nested classes and variables with uglifyjs提供更详细的解释。

关于javascript - 使用 UglifyJS (Brunch) 压缩 Object.prototype.functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22909273/

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