Haxe / Nodejs调试 - 源映射

时间:2015-11-18 11:19:53

标签: node.js haxe

如何在nodejs上启用源映射?我希望堆栈跟踪映射到.hx文件而不是生成的.js文件。

Main.hx:

package;

class Main
{
    public static function main()
        throw "test";
}

build.hxml:

-lib hxnodejs
-cp src
-js bin/index.js
-main Main

输出:(cd bin && node index.js

/Users/kevin/Codes/testnodejs/bin/index.js:10
    throw new js__$Boot_HaxeError("test");
    ^
Error: test
    at Function.Main.main (/Users/kevin/Codes/testnodejs/bin/index.js:10:8)
    at console.undefined.log (/Users/kevin/Codes/testnodejs/bin/index.js:21:6)
    at Object. (/Users/kevin/Codes/testnodejs/bin/index.js:22:3)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:475:10)
    at startup (node.js:117:18)
    at node.js:951:3

1 个答案:

答案 0 :(得分:8)

  1. 安装" source-map-support"来自npm

    npm install source-map-support
    
  2. 在hxml中启用-debug(以便Haxe生成源地图文件)

  3. 在程序的最开始部分运行install()

    js.Lib.require('source-map-support').install();
    
  4. 将wrapCallSite函数指定给haxe.CallStack

    haxe.CallStack.wrapCallSite = js.Lib.require('source-map-support').wrapCallSite;