TypeScript .map

使用TypeScript编写的Node.js应用中,编写的TypeScript会编译成JavaScript,在前端HTML引用的是是经过编译的JavaScript代码,当前端JavaScript报错时实际上与开发源码的TypeScript对应不上,此时应该如何调试呢?

  • 前端开发中压缩JS、CSS以减少体积加快网页显示,但带来的后果是若出现错误则无法在源TypeScript文件中定位错误。
  • 对于Node.js而言服务端的Source Map最大的价值在于错误信息有正确的错误堆栈,只要能实现自定义错误堆栈信息即可。

Source Map

  • .map文件是Source Map源映射文件,它允许编译生成的JavaScript代码和创建它的TypeScript源文件之间进行映射。

Source Map是一个独立的.map文件,采用JSON格式,会分别记录编译前后文件的变化信息。通常会与源码在同一目录下。调试器可以使用Source Map文件来调试TypeScript文件,而非JavaScript文件。

Source Map是一个文件,文件内容保存着转换代码的代码位置和转换前的代码位置的映射信息,当程序报错时可通过它找到开发态代码的位置。因此浏览器通过Source Map使用可以很好地解决源码和编译运行时代码差异的问题。

应用场景

  • 压缩代码减小体积
  • 多文件合并以减少HTTP请求次数,仅用于前端。
  • 将其他语言编译为JavaScript

生成映射

TypeScript编译时可附带--sourcemap参数生成.map文件

$ tsc --sourcemap index.ts

使用映射

Chrome浏览器的Developer Tools开发者工具的Setting设置中,确认选中了Enable source maps

Chrome

编译后的JavaScript代码中确保存在:

//# sourceMappingURL=index.js.map

然后可以像调试JavaScript代码一样调试TypeScript代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值