在没有主入口点的情况下编译 Haxe

Compiling Haxe without a main entry point

我正在尝试通过使用构建 hxml 文件编译 Haxe class 而不定义入口点。

我的文件夹结构如下所示:

root
|
 ___src
     |___Test.hx
|
 ___build.hxml

Test.hx内容如下:

package foo;

class BarLib 
{
      public function new()  {}

      public function test() {
            return "Hello from BarLib!";
      }
}

build.hxml 看起来像这样:

-cp src 
--macro "include('foo')"
-js test.js

然后我从创建文件 test.js 的根文件夹中 运行 haxe build.hxml,但它的内容几乎是空的:

// Generated by Haxe 3.3.0
(function () { "use strict";
})();

好像找不到包裹foo

我做错了什么?

您声明 Test.hxfoo 包的一部分,但是,它位于名为 src 的文件夹中。如果将它移动到 src/foo,Haxe 会产生以下输出:

// Generated by Haxe 3.3.0
(function () { "use strict";
var foo_BarLib = function() {
};
foo_BarLib.prototype = {
    test: function() {
        return "Hello from BarLib!";
    }
};
})();

有一个名为 Test.hx 的文件实际上并没有定义名为 Test 的类型,这也有点不寻常。 BarLib.hx 可能是一个更好的名字。

您还可以使用 haxe -cp src foo.Test 编译单个 class(及其引用)而不使用入口点