When supplying sourceRoot, it is just directly copied into the source map file as is. This doesn't work correctly with rootDir and outDir options. For example, if I have the following structure:
repo/src/www/foo.ts
repo/src/bar.ts
and I want to output the files into repo/out/, I tried using sourceRoot: '../src' and that works okay for bar.js, but not www/foo.js. I hope this explanation makes sense.
sourceRoot
represents the root to use by the debug to locate the sources relative to. if you just want a relative path, do not set sourceRoot and the right thing should happen..
so here is my setup:
tsconfig.json
{
"compilerOptions": {
"rootDir": "./",
"outDir": "./out",
"sourceMap": true
}
}
compiling, i get:
C:\test\5180>type out\bar.js.map
{"version":3,"file":"bar.js","sourceRoot":"","sources":["../src/bar.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAE,CAAC,CAAC"}
C:\test\5180>type out\www\foo.js.map
{"version":3,"file":"foo.js","sourceRoot":"","sources":["../../src/www/foo.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,CAAC,CAAC"}
My mistake, it looks like it works when I use tsc. It looks to be an issue with gulp integration. Thanks.
@mhegazy @sheetalkamat I have following tsconfig.json:
{
"compilerOptions": {
"rootDir": "./",
"outDir": "./out",
"sourceMap": true
}
}
my sources are in ./src
And in source maps I have "sources":["../../src/index.ts"]
This is correct for development, but what I want to do for production build is "sources":["src/index.ts"]
(because I emit source maps with source code, and want in production build to have ts near its js). Is there way to do it?
Most helpful comment
@mhegazy @sheetalkamat I have following tsconfig.json:
my sources are in ./src
And in source maps I have
"sources":["../../src/index.ts"]
This is correct for development, but what I want to do for production build is
"sources":["src/index.ts"]
(because I emit source maps with source code, and want in production build to have ts near its js). Is there way to do it?