4

使用 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
}
4

1 回答 1

6

考虑这个

//Haxenode.hx

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

@:expose("hello")一部分是把东西放进去module.exports

现在启动

haxe -js haxenode.js -dce no Haxenode

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

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在运行时使用常规。

于 2014-07-31T21:35:39.183 回答