gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:22:57 24 4
gpt4 key购买 nike

我正在尝试使用谷歌闭包编译器构建我的项目。遗憾的是,我的项目使用 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' 添加到我的构建脚本中,错误总是在这里。

最佳答案

对于任何其源代码与 ADVANCED 模式下的 Closure-Compiler 不兼容的库,您将需要 extern 定义。 official documentation 中对此进行了介绍。 .

使用 --externs 标志(而不是 --js 标志)向编译器提供外部。虽然以 extern 的形式提供外部库源可能很诱人,但这几乎总是会产生糟糕的结果。

有关编写外部程序的具体详细信息,请参阅 https://stackoverflow.com/a/20101173/1211524

关于javascript - 将外部库与 google-closure-compiler 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31784095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com