1

Closure Toolsは初めてです。この場合、次のようなプロジェクト構造があります。

クロージャー プロジェクト ディレクトリのスクリーンショット

プロジェクトを結合してコンパイルするために使用calcdeps.pyすると、次の例外が発生しました。

例外: (D:\Tes compress\CSS\Stack\sample2.js, sample2.js) で提供 (ClosureSample) が重複しています

次のコマンドを使用して呼び出しcalcdeps.pyます。

python calcdeps.py -i sample.js -p "D:\Tes 圧縮" -p sample2.js -o コンパイル済み -c コンパイラ.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

4

1 に答える 1

2

名前空間がすべての JavaScript ソース ファイル (sample.js、sample2.js など) でClosureSample1 回の呼び出しによってのみ提供されるようにしgoog.provide()ます。複数のファイルに行が含まれているgoog.provide('ClosureSample')場合は、重複した提供例外を受け取ります。

Closure'sbase.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 sample2.jsこのファイルはすでにパスに含まれているため、コマンド ライン呼び出しで削除できます-p "D:\Tes compress

注:このcalcdeps.pyスクリプトは非推奨です。新しく推奨される依存関係解決スクリプトについては、 ClosureBuilderの使用を参照してください。closurebuilder.py,

于 2012-10-11T18:02:54.477 に答える