如何使用closurebuilder.py使用Google Closure Compiler编译我的库

时间:2014-04-17 19:42:47

标签: javascript compiler-errors google-closure-compiler google-closure

似乎无法找到我的问题的当前信息或工作解决方案。我正在尝试将/ src目录中的所有脚本编译为独立的JavaScript库(而不是Closure应用程序)。虽然我设置了标志--output_mode=compiled,但编译的输出仍然是

var COMPILED=!0

以下是我编译的方式:

1 - 将我的所有.js文件保存到./tmp/concat.js中的单个文件中 2 - 使用以下命令通过编译器运行concat.js

./lib/closure/bin/build/closurebuilder.py \
     --root=/usr/local/google-closure/closure-library/ \
     --root=./tmp \
     --namespace=BB.go \
     --output_mode=compiled \
     --compiler_jar=/usr/local/google-closure/compiler.jar \
     --compiler_flags="--compilation_level=SIMPLE_OPTIMIZATIONS" \
     --compiler_flags="--create_source_map=bb.js.map" \
     --compiler_flags="--warning_level=VERBOSE" \
     --compiler_flags="--language_in=ECMASCRIPT5" \
 > bb.min.js

输出为bb.min.js,其中存在上述问题。

快速记录

如果我在ADVANCED_OPTIMIZATIONS模式下编译它,那么我得到预期的输出(减去所有重命名的公共接口,这是我不想要的,我不想导出所有这些,也不是)。我想要做的是仅在SIMPLE_OPTIMIZATIONS模式和白色空间进行编译(因此我可以将该库作为未缩小/未混淆的库提供)。

1 个答案:

答案 0 :(得分:0)

我非常确定--output_mode=compiled应为--output_mode="compiled"

这是我的看起来有效:

python Z:\scripts\closure\closure\bin\calcdeps.py^
 --path=Z:\scripts\closure\^
 --output_mode="compiled"^
 --compiler_jar=Z:\scripts\closure\other\compiler.jar^
 --compiler_flag=--compilation_level=ADVANCED_OPTIMIZATIONS^
 --compiler_flag=--use_types_for_optimization^
 --compiler_flag=--warning_level=VERBOSE^
 --input=Z:\scripts\closure\other\soyutils_usegoog.js^
 --input=Z:\scripts\closure\closure\goog\deps.js^
 --input=utils.js^
 --input=main.js^
 --input=templates.soy.js^
 --output_file=main.min.js

请注意,您需要修改此内容以匹配您的路径/文件,并且我的内容适用于Windows环境,因此请将^替换为\,将反斜杠替换为路径的正斜杠。