繁体   English   中英

如何防止Closure Compiler在全局名称空间中创建特定的变量名?

[英]How to prevent Closure Compiler from creating a particular variable name in the global name space?

我熟悉使用字符串文字和导出以防止Closure重命名变量的概念,但是如何防止Closure使用由其他代码(我没写过)用作全局变量的变量名?

下面的示例是为闭包的成员函数创建的:

  function $() {
  var a;
  if(1 > N) {
        return-1
  }
  a = Math.pow(1 + Q, F);
  return .....
  }

当加载jQuery时,上面会被破坏。

我正在使用命令行编译器,这是我的命令行:

java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --formatting = pretty_print --output_wrapper PGS --js common.v2.0.raw.js --module common_min:1 --js page_code.raw.js --module page_code_min: 1:common_min

我认为output_wrapper选项用于解决这个问题,但要么我误解了它的目的,要么我误用了它。

TIA。

答案是外部

Externs在外部代码中定义符号。 它们有两个主要目的:

  • 提供外部符号的定义和类型信息,以便您的代码可以调用它们而不会出现错误/警告。
  • 防止编译器使用在代码之外定义的符号名称

在您的情况下,您可以包含jQuery的现有extern。 项目contrib文件夹中的每个主要版本都有一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM