1

我是Closure Tools的新手。在這種情況下,我有一個項目的結構是這樣的:當使用calcdeps.py構建Closure項目時出現「異常:重複提供」

Closure project directory screenshot

使用calcdeps.py結合起來,並編譯我的項目,我得到這個異常:

例外:重複提供(ClosureSample)在(d :\維護設備壓縮\ CSS \棧\ sample2.js,sample2.js)

我用下面的命令來調用calcdeps.py

python calcdeps.py -i sample.js -p「D:\ Tes compress」-p sample2.js -o編譯-c compiler.jar -f --js = sample_renaming_map.js -f --compilation_level = ADVANCED_OPTIMIZATIONS -f --warning_level = VERBOSE -f --externs = jQuery的1.7.js -f --js_output_file = sample_compiled.js

回答

2

確保命名空間ClosureSample被一個電話所有的只是提供給goog.provide() JavaScript源文件:sample.js,sample2.js等。如果多個文件包含行goog.provide('ClosureSample'),您將收到重複提供的異常。

Closure的base.js包括goog.provide()定義範圍內的評論:

// Ensure that the same namespace isn't provided twice. This is intended 
// to teach new developers that 'goog.provide' is effectively a variable 
// declaration. And when JSCompiler transforms goog.provide into a real 
// variable declaration, the compiled JS should work the same as the raw 
// JS--even when the raw JS uses goog.provide incorrectly. 

在命令行中的調用,因爲這個文件已經由路徑-p "D:\Tes compress包括你可能會刪除-p sample2.js

注意:calcdeps.py腳本已棄用。有關closurebuilder.py,新推薦的依賴關係解析腳本的信息,請參閱使用ClosureBuilder

相關問題