簡體   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