如何在节点 js 中使用源映射?

Mar*_*S82 8 debugging node.js node-inspector

我启动了我的节点应用程序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.node.js.maptronweb\dist目录。我再次开始使用--inspect并打开了 chrome 开发工具。但是在控制台中,我看到了完全相同的消息。

Zme*_*mey 12

Node v12.12.0+ 中,原生支持映射。传递--enable-source-maps标志以启用它们。

Node 中的一个警告v12.12.0是,Error.prepareStackTrace当启用源映射时将不再调用它。这是在v12.16+.

  • 将其传递到环境变量中也可以使用“NODE_OPTIONS=--enable-source-maps 节点” (10认同)

rol*_*znz 5

您可以使用https://www.npmjs.com/package/source-map-support

$ npm install source-map-support --save-dev
Run Code Online (Sandbox Code Playgroud)

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

node -r source-map-support/register index.js
Run Code Online (Sandbox Code Playgroud)

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