gpt4 book ai didi

javascript - 为什么 Grunt Uglify 保留我的函数名称?

转载 作者:行者123 更新时间:2023-11-30 12:26:55 24 4
gpt4 key购买 nike

我有一个 grunt-contrib-uglify 的 grunt 配置:

options: {
mangle: {
topLevel: true
},
compressor: {
sequences: true,
dead_code: true,
conditionals: true,
booleans: true,
unused: true,
if_return: true,
join_vars: true,
drop_console: true
},
dist: {
cwd: 'public',
expand: true,
src: ['**/*.js'],
dest: 'public'
}
}

这是一些关于我所拥有的示例代码:

(function (Core, $, undefined) {
Core.Dom = {
AddItem: function() {
... code ...
}
};

... etc ...

}(window.Core = window.Core || {}, jQuery));

在我运行我的 grunt 任务后,压缩在消除空白等方面起作用,但代码仍然具有函数标签及其名称。例如,在压缩文件中 Core.Dom.AddItem 将是 a.Dom.AddItem。有没有一种方法可以将名称修改为 a.b.c,其中 b=Domc=AddItem?我也尝试过 mangle: true,但它保留了函数的名称。有人知道我做错了什么吗?

最佳答案

想象一下在另一个文件中有这个:

window.Core.Dom.AddItem()

如果 uglify 在 a.b 中重命名为 Core.Dom,那么其他文件将会失败,因为 window.Core.Dom 现在是 window.Core.b.

Uglify 重命名可以安全重命名的内容。

Core 重命名为 a 的原因是,在这种情况下,它可以安全地重命名函数内出现的所有 Core 而无需而不必担心它在函数之外的使用。

另请参阅闭包的概念。

关于javascript - 为什么 Grunt Uglify 保留我的函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053582/

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