如何在Node.js中使用源代码映射?

20

我使用node index.js启动了我的节点应用,并收到以下消息:

(node:10128) UnhandledPromiseRejectionWarning: TypeError: e.reduce is not a function at Module.te (C:\Projects\myproject\node_modules\tronweb\dist\TronWeb.node.js:1:9236)

现在我对发生的情况感兴趣。我看到在tronweb \ dist目录中有映射文件 TronWeb.node.js.map。我再次使用--inspect 启动,并打开 Chrome 开发工具。但是在控制台上我看到完全相同的消息。

2个回答

42
Node v12.12.0+ 中,支持原生的sourcemaps。传递--enable-source-maps标志来启用它们。
在Node v12.12.0中有一个注意点,当启用源映射时,Error.prepareStackTrace将不再被调用。这在v12.16+中得到了修复。

8
将其传递到环境变量中也可以工作 NODE_OPTIONS=--enable-source-maps node - user3064538
1
请注意,这是一个实验性标志,并且有一些已报告的性能问题(https://github.com/nodejs/node/issues/41541)。 - Divyanshu Maithani
1
我试了几个小时去理解 webpack 的源代码映射为什么不能用 - 这个简单的标志竟然解决了它。。太神奇了!! - Yitzchak

7
你可以使用 https://www.npmjs.com/package/source-map-support
$ npm install source-map-support --save-dev

然后将package.json中的运行命令更改为:

node -r source-map-support/register index.js

(请注意,您应该在index.js旁边有一个index.map.js)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接