2
以前,我一直在使用下面的生成腳本,以編譯關停項目:Closure編譯器的依賴性比計算closurebuilder.py慢得多
# BUILD SCRIPT 1:
closure-library/closure/bin/build/closurebuilder.py \
--root=closure-library/ \
--root=src/ \
--namespace="entrypoint" \
--output_mode=compiled \
--compiler_jar=compiler.jar \
--compiler_flags="--js=closure-library/closure/goog/deps.js" \
--compiler_flags="--compilation_level=ADVANCED_OPTIMIZATIONS" \
> ../public_html/scripts/compiled.js
這工作正常,但產生以下的輸出:
closure-library/closure/bin/build/closurebuilder.py: Closure Compiler
now natively understands and orders Closure dependencies and
is prefererred over using this script for performing JavaScript
compilation.
Please migrate your codebase.
See:
https://github.com/google/closure-compiler/wiki/Managing-Dependencies
多次試驗後,我終於得到了編譯器正常工作(包括必要的goog.
庫):
# BUILD SCRIPT 2:
java -jar compiler.jar \
--js "src/**.js" \
--js "closure-library/closure/goog/**.js" \
--js "!closure-library/closure/goog/**_test.js" \
--dependency_mode=STRICT \
--entry_point=entrypoint \
--compilation_level=ADVANCED_OPTIMIZATIONS \
--js_output_file=../public_html/scripts/compiled.js
這會產生類似的編譯代碼(某些部分被重新排序,某些變量名稱被更改,但沒有重要區別)。然而,構建腳本2需要大約運行50%(與30秒相比45秒)。
我的構建腳本2在某種程度上不正確/效率低於它應該是什麼?如果沒有,爲什麼顯着較慢的編譯方法「首選」?
是的,但這基本上意味着: 1.使用生成器生成釐米 2.將僅生成的釐米通過關閉 –
此答案是5年,不再準確。 –
也許在細節上,但總的來說它是ls。閉包構建器可以預先過濾它需要傳遞給編譯器的文件。如果你使用一個原始的閉包編譯器,它非常慢。 –