Closure 编译器依赖计算比 closurebuilder.py 慢很多
Closure compiler dependency calculation much slower than closurebuilder.py
之前,我一直在使用以下构建脚本来编译 Closure 项目:
# 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% 的时间 到 运行(45 秒与 30 秒相比)。
我的构建脚本 2 是否不正确/效率低于应有水平?如果不是,为什么显着慢的编译方法"preferred"?
所有代码实际上都由闭包编译器解析,而闭包构建器使用正则表达式匹配(我相信)。
Closure-builder 不涵盖许多现代依赖项,例如 CommonJS 或 ES6 模块 - 因此迁移。
之前,我一直在使用以下构建脚本来编译 Closure 项目:
# 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% 的时间 到 运行(45 秒与 30 秒相比)。
我的构建脚本 2 是否不正确/效率低于应有水平?如果不是,为什么显着慢的编译方法"preferred"?
所有代码实际上都由闭包编译器解析,而闭包构建器使用正则表达式匹配(我相信)。
Closure-builder 不涵盖许多现代依赖项,例如 CommonJS 或 ES6 模块 - 因此迁移。