Source Map 原理:在 Chrome DevTools 中调试 TS 源码

技术讲座:Chrome DevTools 中调试 TypeScript 源码的 Source Map 原理与实践

引言

TypeScript 是一种由微软开发的开源编程语言,它扩展了 JavaScript 的功能,提供了类型系统、接口、模块、装饰器等特性。在开发过程中,TypeScript 代码通常需要被编译成 JavaScript 才能在浏览器中运行。然而,这给调试带来了不便,因为调试的是编译后的 JavaScript 代码,而不是原始的 TypeScript 代码。为了解决这个问题,Source Map 应运而生。本文将深入探讨 Source Map 的原理,并通过实际案例展示如何在 Chrome DevTools 中调试 TypeScript 源码。

Source Map 原理

Source Map 是一种映射关系,它将编译后的 JavaScript 代码与原始的 TypeScript 代码对应起来。当 TypeScript 代码被编译成 JavaScript 代码时,编译器会生成一个 Source Map 文件,其中包含了原始代码与编译后代码之间的映射关系。

Source Map 文件结构

Source Map 文件是一个 JSON 格式的文件,其基本结构如下:


{
  "version": 3,
  "file": "output.js",
  "sourceRoot": "/path/to/source",
  "sources": ["file1.ts", "file2.ts"],
  "mappings": "AAAA;AAC;AAC;AACA;EAAQ;AAC;AAC;EAAQ;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;AAC;

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注