2016-06-22 14 views
4

Ich versuche, eine Haxe-Klasse zu kompilieren, ohne einen Einstiegspunkt zu definieren, indem ich eine Build hxml-Datei verwende.Haxe ohne einen Haupteinstiegspunkt kompilieren

Meine Ordnerstruktur sieht wie folgt aus:

root 
| 
___src 
    |___Test.hx 
| 
___build.hxml 

Test.hx folgenden Inhalt hat:

package foo; 

class BarLib 
{ 
     public function new() {} 

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

build.hxml wie folgt aussieht:

-cp src 

--macro "include('foo')" 

-js test.js 

ich das dann von der Wurzel laufen Ordner mit dem Befehl haxe build.hxml was creat Es ist die Datei test.js, aber der Inhalt ist ziemlich leer.

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

Es scheint nicht das Paket foo lokalisieren zu können.

Was mache ich falsch?

+0

Sie sollten diesen Artikel überprüfen http://code.haxe.org/category/compilation/compiling-libraries- ohne-main-class.html –

Antwort

7

Sie deklarieren Test.hx als Teil des foo-Pakets, es befindet sich jedoch in einem Ordner mit dem Namen src. Wenn Sie es src/foo bewegen, erzeugt Haxe die folgende Ausgabe:

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

Es ist auch ein bisschen ungewöhnlich, dass eine Datei namens Test.hx zu haben, die eigentlich keinen Typen Test genannt definieren. BarLib.hx könnte ein besserer Name sein.

1

Sie können auch haxe -cp src foo.Test verwenden eine einzige Klasse (und seine Referenzen) ohne Einstiegspunkt zu kompilieren