关闭编译器在升级后未生成缩小的文件



这与编译器版本 2013.11.18 完美配合:

java -jar C:/closure/compiler_v20131118.jar 
--compilation_level ADVANCED_OPTIMISATIONS
--warning_level=VERBOSE 
--jscomp_off=externsValidation
--summary_detail_level=3
--externs C:pathexterns.js 
--create_source_map C:pathmin.map.js 
--output_wrapper "%output%//# sourceMappingURL=urlToMap
--source_map_format V3 
--js C:pathfile1.js 
--js C:pathfile2.js 
--js_output_file C:pathmin.js 
--version 2>&1

但是缩小的文件不会使用编译器版本 2016.05.17 创建:

java -jar C:/closure/compiler_v20160517.jar 
--compilation_level ADVANCED 
--warning_level=VERBOSE 
--jscomp_off=externsValidation
--summary_detail_level=3
--externs C:pathexterns.js 
--create_source_map C:pathmin.map.js
--output_wrapper "%output%//# sourceMappingURL=urlToMap
--source_map_format V3 
--js C:pathfile1.js 
--js C:pathfile2.js 
--js_output_file C:pathmin.js 
--version 2>&1

我只在控制台中得到这个输出:

Closure Compiler (http://github.com/google/closure-compiler)
Version: v20160517
Built on: 2016/05/18 16:21

我做错了什么?

从 2013 年到 2016 年,编译器发生了很多变化。此 wiki 页面有一些更重要的更改:

https://github.com/google/closure-compiler/wiki/Managing-Dependencies

作为数据点,这里有一个对我有用的示例编译命令:

java -jar ../javascript/closure-compiler/build/compiler.jar
--entry_point=goog:myphysicslab.sims.pendulum.DoublePendulumApp
--compilation_level=SIMPLE --define=goog.DEBUG=true --define=goog.LOCALE='de'
--define=myphysicslab.lab.util.UtilityCore.ADVANCED=false --generate_exports
--js=../closure-library/ --js=src --jscomp_error=accessControls
--jscomp_error=ambiguousFunctionDecl --jscomp_error=checkTypes
--jscomp_error=checkVars --jscomp_error=const --jscomp_error=constantProperty
--jscomp_error=fileoverviewTags --jscomp_error=globalThis
--jscomp_error=invalidCasts --jscomp_error=misplacedTypeAnnotation
--jscomp_error=missingProperties --jscomp_error=missingProvide
--jscomp_error=missingRequire --jscomp_error=missingReturn
--jscomp_error=newCheckTypes --jscomp_error=strictModuleDepCheck
--jscomp_error=suspiciousCode --jscomp_error=typeInvalidation
--jscomp_error=undefinedNames --jscomp_error=undefinedVars
--jscomp_error=unknownDefines --jscomp_error=uselessCode
--jscomp_error=visibility --language_in=ECMASCRIPT5_STRICT
--dependency_mode=STRICT --warning_level=VERBOSE

您很可能需要添加--entry_point--dependency_mode选项。

下面是使用高级编译和output_wrapper的示例命令:

java -jar ../javascript/closure-compiler/build/compiler.jar
--entry_point=goog:myphysicslab.sims.pendulum.DoublePendulumApp
--compilation_level=ADVANCED --define=goog.DEBUG=true
'--define=goog.LOCALE='''en''''
--define=myphysicslab.lab.util.UtilityCore.ADVANCED=true --generate_exports
--js=../closure-library/ --js=src --jscomp_error=accessControls
--jscomp_error=ambiguousFunctionDecl --jscomp_error=checkTypes
--jscomp_error=checkVars --jscomp_error=const --jscomp_error=constantProperty
--jscomp_error=fileoverviewTags --jscomp_error=globalThis
--jscomp_error=invalidCasts --jscomp_error=misplacedTypeAnnotation
--jscomp_error=missingProperties --jscomp_error=missingProvide
--jscomp_error=missingRequire --jscomp_error=missingReturn
--jscomp_error=newCheckTypes --jscomp_error=strictModuleDepCheck
--jscomp_error=suspiciousCode --jscomp_error=typeInvalidation
--jscomp_error=undefinedNames --jscomp_error=undefinedVars
--jscomp_error=unknownDefines --jscomp_error=uselessCode
--jscomp_error=visibility --language_in=ECMASCRIPT5_STRICT
--dependency_mode=STRICT --warning_level=VERBOSE
'--output_wrapper='''(function(){%output%}).call(window)''''

您可能对output_wrapper中的单引号有问题?

查看编译器选项:

java -jar ../closure-compiler/build/compiler.jar --help

这将提供有关选项的一些好信息,例如:

--entry_point VAL                   : A file or namespace to use as the
                                      starting point for determining which
                                      src files to include in the compilatio
                                      n. ES6 and CommonJS modules are
                                      specified as file paths (without the
                                      extension). Closure-library namespaces
                                      are specified with a "goog:" prefix.
                                      Example: --entry_point=goog:goog.Promi
                                      se

最新更新