Доступ к внешним библиотекам JavaScript с помощью Haxe

Я пытаюсь понять, как получить доступ к внешним библиотекам JavaScript из Haxe. Должен ли исходный файл для класса extern находиться в той же папке, что и соответствующий нативный файл JavaScript, а также «основной» исходный файл Haxe, или они могут быть определены в отдельных исходных папках?

Вот документация, на которую я ссылаюсь:

https://haxe.org/manual/target-javascript-external-libraries.html

Кроме того, есть ли какая-либо документация для Haxe, объясняющая, как получить доступ к внешним библиотекам во всех целях (а не только в одной цели)?


person Anderson Green    schedule 02.11.2012    source источник
comment
документация по этому поводу серьезно отсутствует. Я тоже не понимаю, как лучше всего получить доступ к внешней библиотеке в моем источнике haxe и как этот источник haxe транслируется в разные цели. мне нужно сделать условную компиляцию? как/где мне поместить внешний источник lib? как это не задокументировано?   -  person stowns    schedule 10.06.2021


Ответы (1)


Механизм Extern предполагает, что определенные типы существуют во время выполнения (они доступны для вызова/использования), но ничего не делает о том, как и где эти типы определены. Это справедливо для всех платформ.

То, как внешние библиотеки включаются в ваш проект, в основном зависит от цели и может сильно различаться.

В случае JS нет прямой связи между определениями extern (файлы .hx) и JS, включающим эти типы (библиотека js). Файлы haxe должны быть доступны для haxe (используя -cp, -lib или помещая их в ваш исходный каталог), в то время как файлы js должны быть доступны во время выполнения (включите lib JS в свой HTML перед кодом, сгенерированным haxe).

Некоторую путаницу может создать то, что Haxe поддерживает функцию, позволяющую встраивать внешний js-файл в сгенерированный код. Таким образом, вы можете распространять только один файл вместо основного файла + один или несколько файлов lib. Вы можете посмотреть, как Haxe автоматически включает JQuery в __init__().

person Franco Ponticelli    schedule 02.11.2012
comment
В этом случае я не использую Javascript с HTML — я использую node.js. Как я могу сделать файлы .js методов и переменных доступными из класса extern? - person Anderson Green; 23.11.2012