gpt4 book ai didi

minify - 为什么 Google Closure Compiler 不重命名这些外部变量?

转载 作者:行者123 更新时间:2023-12-02 02:06:40 26 4
gpt4 key购买 nike

根据文档(https://developers.google.com/closure/compiler/docs/api-tutorial3#externs),闭包编译器似乎应该在不存在外部声明时重命名变量,包括在使用来自外部代码的函数/变量时。他们给出的例子是

function makeNoteDom(noteTitle, noteContent, noteContainer) {
// Create DOM structure to represent the note.
var headerElement = textDiv(noteTitle);
var contentElement = textDiv(noteContent);
...
}

其中 textDiv 函数由某种第三方库在全局范围内声明。它说 textDiv 应该声明为外部以防止重命名。

我的问题是 - 当我将此代码或类似代码放入 Closure Compiler 时没有任何外部声明,为什么 textDiv 没有重命名(这会破坏代码),如文档所示?

最佳答案

编译器假定对未定义函数的调用实际上是对外部函数的调用。使用命令行编译器,您可以使用 --warning_level VERBOSE 让编译器将这种情况视为错误。

Web Application主要是为演示而构建的,默认情况下是这样的。虽然您可以设置 VERBOSE 警告级别,但它不会更改此功能。查看Additional Web Service Options有关选项的信息页面。我已经提交了 bug report关于这个。

由于属性的重命名算法,如果未在外部对象中声明相同的属性名称,则未声明的属性将以中断的方式重命名。

关于minify - 为什么 Google Closure Compiler 不重命名这些外部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679804/

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