Javascript node/nodemon中是否有typescript的源映射支持?
我有一个节点项目写在typescript@2. 我的tsconfig将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文件中检测到的相对
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()
(注意:这是调用nodeJSrequire
-不需要源地图支持定义文件)我最近在我的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%确定我能理解。请随意编辑我的答案,以显示您的意思。是否可以通过源代码地图支持以本机方式执行此操作,而不会使包膨胀
?感谢您的分享,您为我节省了很多时间:)