将Haxe模块导入node.js脚本

时间:2013-01-02 02:32:17

标签: node.js haxe

使用node.js和Haxe,有没有办法编写一个从Haxe文件生成node.js模块的函数,然后返回生成的模块?我开始使用Haxe编写node.js模块,我需要一种方法来更轻松地导入模块。

function requireHaxe(variableToRequire, haxeFileLocation){
    //generate a JavaScript module from the Haxe file, and then return the generated JavaScript module
}

1 个答案:

答案 0 :(得分:5)

考虑一下

//Haxenode.hx

class Haxenode {
  @:expose("hello")
  public static function hello(){
    return "hello";
  }
}

@:expose("hello")部分是在module.exports中添加内容。

现在启动

haxe -js haxenode.js -dce no Haxenode

现在您可以在nodejs中使用haxenode.js

var haxenode = require('./haxenode.js');
var hello = haxenode.hello;

所以,这个结合在一起就是你问题的答案:

var cp = require('child_process');

function requireHaxe(haxeClassPath,cb){
    //generate a JavaScript module from the Haxe file, and then return the generated JavaScript module

    cp.exec('haxe -js haxenode.js -dce no ' + haxeClassPath,function(err){
        if (err){
            cb(err); return;
        }

        cb(null,require('./haxenode.js'));
    });
}

请注意输出文件名是存根。

但是不要这样做 - 最好将haxe编译为构建步骤(包含所有必需的编译选项),然后在运行时使用常规require