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

cod*_*lar 4 haxe

我正在尝试编译Haxe类而不使用构建hxml文件定义入口点.

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

root
|
 ___src
     |___Test.hx
|
 ___build.hxml
Run Code Online (Sandbox Code Playgroud)

Test.hx 具有以下内容:

package foo;

class BarLib 
{
      public function new()  {}

      public function test() {
            return "Hello from BarLib!";
      }
}
Run Code Online (Sandbox Code Playgroud)

build.hxml 看起来像这样:

-cp src 
--macro "include('foo')"
-js test.js
Run Code Online (Sandbox Code Playgroud)

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

// Generated by Haxe 3.3.0
(function () { "use strict";
})();
Run Code Online (Sandbox Code Playgroud)

似乎无法找到包裹foo.

我究竟做错了什么?

Gam*_*a11 7

您声明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!";
    }
};
})();
Run Code Online (Sandbox Code Playgroud)

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