我正在试图弄清楚如何从Haxe访问外部JavaScript库。 extern类的源文件是否应该与相应的本机JavaScript文件位于同一文件夹中,以及“主”Haxe源文件,还是可以在单独的源文件夹中定义?
以下是我所指的文档:
https://haxe.org/manual/target-javascript-external-libraries.html
此外,是否有任何Haxe文档解释了如何访问所有目标中的外部库(而不是仅仅一个目标)?
答案 0 :(得分:3)
Extern机制假定已定义的类型在运行时存在(它们可以被调用/使用),但不假定这些类型的定义方式和位置。所有平台都是如此。
项目中如何包含extern库主要取决于目标,并且可能有很大差异。
在JS的情况下,extern定义(.hx文件)和包含这些类型(js库)的JS之间没有直接关联。 haxe文件应该可以被haxe访问(使用-cp
,-lib
,或者将它们放在源目录中),而运行时应该可以访问js文件(在HTML之前包含lib JS) haxe生成的代码)。
可能会造成一些混淆的是,Haxe支持一种允许您在生成的代码中嵌入外部js文件的功能。这样,您只能分发一个文件而不是主文件+一个或多个lib文件。您可以查看Haxe如何自动包含JQuery in __init__()
。