Source Maps
In order to provide rich debugging tools and crash reports which make sense to developers, TypeScript supports emitting additional files which conform to the JavaScript Source Map standards.
These are emitted as .map
files which live alongside the file they represent.
Inline Source Map - inlineSourceMap
When set, instead of writing out a .js.map
file to provide source maps, TypeScript will embed the source map content in the .js
files. Although this results in larger JS files, it can be convenient in some scenarios. For example, you might want to debug JS files on a webserver that doesn’t allow .map
files to be served.
Mutually exclusive with sourceMap
.
For example, with this TypeScript:
ts
const helloWorld = "hi";console.log(helloWorld);
Converts to this JavaScript:
Try
"use strict";const helloWorld = "hi";console.log(helloWorld);
Then enable building it with inlineSourceMap
enabled there is a comment at the bottom of the file which includes a source-map for the file.
Try
"use strict";const helloWorld = "hi";console.log(helloWorld);//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMifQ==
Default:
false
Released:
Inline Sources - inlineSources
When set, TypeScript will include the original content of the .ts
file as an embedded string in the source map. This is often useful in the same cases as inlineSourceMap
.
Requires either sourceMap
or inlineSourceMap
to be set.
For example, with this TypeScript:
Try
consthelloWorld = "hi";console .log (helloWorld );
By default converts to this JavaScript:
Try
"use strict";const helloWorld = "hi";console.log(helloWorld);
Then enable building it with inlineSources
and inlineSourceMap
enabled there is a comment at the bottom of the file which includes a source-map for the file. Note that the end is different from the example in inlineSourceMap
because the source-map now contains the original source code also.
Try
"use strict";const helloWorld = "hi";console.log(helloWorld);//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBoZWxsb1dvcmxkID0gXCJoaVwiO1xuY29uc29sZS5sb2coaGVsbG9Xb3JsZCk7Il19
Default:
false
Released:
Map Root - mapRoot
Specify the location where debugger should locate map files instead of generated locations. This string is treated verbatim inside the source-map, for example:
{"": {"": true,"": "https://my-website.com/debug/sourcemaps/"}}
Would declare that index.js
will have sourcemaps at https://my-website.com/debug/sourcemaps/index.js.map
.
Source Root - sourceRoot
Specify the location where a debugger should locate TypeScript files instead of relative source locations. This string is treated verbatim inside the source-map where you can use a path or a URL:
{"": {"": true,"": "https://my-website.com/debug/source/"}}
Would declare that index.js
will have a source file at https://my-website.com/debug/source/index.ts
.