繁体   English   中英

将外部库与google-closure-compiler一起使用

[英]Use external library with google-closure-compiler

我正在尝试使用Google Closure编译器构建项目。 可悲的是,我的项目使用Box2D:一个没有google关闭的物理库,所以我只有一个带有库函数的缩小文件。

我该如何正确地构建项目?

这是我的构建命令行:

java -jar ../libs/closure-compiler.jar \
    --compilation_level SIMPLE_OPTIMIZATIONS \
    --language_in=ECMASCRIPT5_STRICT \
    --warning_level VERBOSE \
    --only_closure_dependencies\
    --summary_detail_level 3 \
    --process_closure_primitives true \
    --closure_entry_point="MyProject.Main"\
    --js='../src/**.js' \
    --js='../libs/closure-library/**.js' \
    --js='!../libs/closure-library/**_test.js' \
    --js='!../libs/closure-library/**_test.js' \
    --js_output_file Project.js

这是我遇到的错误:

ERROR - variable Box2D is undeclared
        var col = Box2D.wrapPointer(color, Box2D.b2Color);

ERROR - variable b2_kinematicBody is undeclared
        this.instance.SetType(b2_kinematicBody);        

ERROR - variable b2Vec2 is undeclared
    this.instance.SetLinearVelocity(new b2Vec2(x, y));

ERROR - variable b2BodyDef is undeclared
    var definition = new b2BodyDef();

ERROR - variable b2FixtureDef is undeclared
    var fixture = new b2FixtureDef();

ERROR - variable b2CircleShape is undeclared
    var shape = new b2CircleShape();

我试图将--js='../libs/Box2D-min.js'到我的构建脚本中,错误始终在这里。

对于源在高级模式下与Closure-Compiler不兼容的任何库,您将需要外部定义。 官方文档中对此进行了介绍

通过--externs标志(而不是--js标志)向编译器提供--externs命令。 虽然可能很想提供外部库源作为外部资源,但这几乎总是产生不良结果。

有关创作外部脚本的特定详细信息,请参阅https://stackoverflow.com/a/20101173/1211524

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM