Javascript node/nodemon中是否有typescript的源映射支持?

Javascript node/nodemon中是否有typescript的源映射支持?,javascript,node.js,typescript,nodemon,Javascript,Node.js,Typescript,Nodemon,我有一个节点项目写在typescript@2. 我的tsconfig将sourceMap设置为true,并生成*.map.js文件。当我通过node或nodemon执行传输的*.jsJavaScript文件时,我只看到与js文件相关的错误消息,而没有看到与映射的typescript文件相关的错误消息;我想它完全被忽略了 sourceMap支持是否仅用于浏览器支持?或者我可以将其与node或nodemon一起使用吗?如果是后者,我将如何启用它 我想查看从执行的javascript文件中检测到的相对

我有一个节点项目写在typescript@2.

我的tsconfig将
sourceMap
设置为
true
,并生成
*.map.js
文件。当我通过
node
nodemon
执行传输的
*.js
JavaScript文件时,我只看到与
js
文件相关的错误消息,而没有看到与映射的typescript文件相关的错误消息;我想它完全被忽略了

sourceMap
支持是否仅用于浏览器支持?或者我可以将其与node或nodemon一起使用吗?如果是后者,我将如何启用它


我想查看从执行的javascript文件中检测到的相对于原始typescript文件的运行时错误。

我找到了这个npm模块,它似乎起到了作用:

运行
npm安装源地图支持--在节点项目的根目录下保存
,并将
导入“源地图支持/注册”
添加到main.ts或index.ts文件中


就是这样。

源映射支持在节点上运行得非常好

您只需添加

"source-map-support": "0.4.11",
通过运行

npm install --save source-map-support
在您的入口点ts文件中,只需在顶部添加

require('source-map-support').install()

(注意:这是调用nodeJS
require
-不需要源地图支持定义文件)

我最近在我的express应用程序中实现了这一功能。步骤如下:

安装所需的库:

npm安装--保存开发人员源代码映射支持

在您的入口点(例如
app.ts
):

require('source-map-support').install()

在您的
app.ts
中,您可能还需要更好地记录承诺中的错误:

process.on('unhandledRejection',console.log)

tsconfig
中的
编译器选项下:


“inlineSourceMap”:true

安装源代码映射支持:

npm install source-map-support
(我也在生产环境中运行过,因为它极大地帮助您在发生错误时从日志中查找错误。我没有体验到很大的性能影响,但您的体验可能会有所不同。)

添加到您的
tsconfig.json

{
   "compilerOptions": {
      "sourceMap": true
   }
}
运行JavaScript文件时,添加require参数:

nodemon -r source-map-support/register dist/pathToJson.js

node -r source-map-support/register dist/pathToJson.js
或者,您可以添加您的进入呼叫:

require('source-map-support').install()
然而,我发现这是一个有多个入口点的乏味的项目


旁注:还支持/
-r
选项,因此要在mocha中获得sourcemap支持,您也可以使用它调用您的测试,例如类似于:

NODE_ENV=test npx mocha --forbid-only --require source-map-support/register --exit --recursive ./path/to/your/tests/

这里的答案对于之前添加了(实验性)标志的节点版本是正确的。启用该选项后,源映射将应用于堆栈跟踪,而无需附加依赖项。如中所示,它的行为稍有不同,而且可能是有益的,包括生成的.js文件位置和源文件位置。例如:

Error: not found
    at Object.<anonymous> (/Users/bencoe/oss/source-map-testing/test.js:29:7)
        -> /Users/bencoe/oss/source-map-testing/test.ts:13:7
错误:找不到
反对。(/Users/bencoe/oss/source-map-testing/test.js:29:7)
->/Users/bencoe/oss/source-map-testing/test.ts:13:7

在生产中使用此功能有什么不利之处吗?(服务器端)@Sev据我们所知(我们确实在生产中使用它)inlineSourceMap和sourceMap编译器选项是互斥的。如果您将cli用法添加到您的答案中(正如我在自己的答案中指出的),我将接受您的,并删除我自己的。()@k0pernikus谢谢。抱歉,我不是100%确定我能理解。请随意编辑我的答案,以显示您的意思。是否可以通过
源代码地图支持以本机方式执行此操作,而不会使包膨胀
?感谢您的分享,您为我节省了很多时间:)