Haxe/Nodejs调试 - 源映射

Kev*_*soL 1 haxe node.js

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

Main.hx:

package;

class Main
{
    public static function main()
        throw "test";
}
Run Code Online (Sandbox Code Playgroud)

build.hxml:

-lib hxnodejs
-cp src
-js bin/index.js
-main Main
Run Code Online (Sandbox Code Playgroud)

输出:( 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
Run Code Online (Sandbox Code Playgroud)

Kev*_*soL 8

  1. 从npm安装"source-map-support"

    npm install source-map-support
    
    Run Code Online (Sandbox Code Playgroud)
  2. -debug在hxml中启用(以便Haxe生成源映射文件)

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

    js.Lib.require('source-map-support').install();
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将wrapCallSite函数分配给haxe.CallStack

    haxe.CallStack.wrapCallSite = js.Lib.require('source-map-support').wrapCallSite;
    
    Run Code Online (Sandbox Code Playgroud)