이전에, 나는 클로저 프로젝트를 컴파일하기 위해 다음과 같은 빌드 스크립트를 사용하고 있습니다 :폐쇄 컴파일러 의존성 계산 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
이 제대로 작동을하지만, 다음과 같은 출력을 얻을 수 :
# 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
:
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.
libs와 포함) 제대로 작동 컴파일러를 가지고
이렇게하면 비슷한 컴파일 된 코드가 생성됩니다 (일부는 순서가 변경되고 일부 변수 이름은 변경되지만 중요한 차이는 없음). 그러나 빌드 스크립트 2는 길이가 50 % 길어서 (30 초에 비해 45 초) 걸립니다.
내 빌드 스크립트 2가 다소 잘못되었거나 덜 효율적입니다. 그렇지 않다면, 왜 상당히 느린 컴파일 방법이 "선호"됩니까?
그래,하지만 이것은 기본적으로 다음을 의미합니다. 1. 빌더를 사용하여 deps 생성 2. 생성 된 deps 만 닫음 –
이 대답은 5 년이며 더 이상 정확하지 않습니다. –
어쩌면 자세하게 설명 하겠지만 일반적으로는 그렇습니다. closure-builder는 컴파일러에 전달해야하는 파일을 사전 필터링 할 수 있습니다. raw closure-compiler를 사용한다면 놀라 울 정도로 느립니다. –