考虑这个
//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
在运行时使用常规。