Ao fornecer sourceRoot, ele é apenas copiado diretamente para o arquivo de mapa de origem como está. Isso não funciona corretamente com as opções rootDir e outDir. Por exemplo, se eu tiver a seguinte estrutura:
repo / src / www / foo.ts
repo / src / bar.ts
e quero enviar os arquivos para repo / out /, tentei usar sourceRoot: '../src' e isso funciona bem para bar.js, mas não www / foo.js. Espero que esta explicação faça sentido.
sourceRoot
representa a raiz a ser usada pela depuração para localizar as fontes relativas. se você quiser apenas um caminho relativo, não defina sourceRoot e a coisa certa deve acontecer.
então aqui está minha configuração:
tsconfig.json
{
"compilerOptions": {
"rootDir": "./",
"outDir": "./out",
"sourceMap": true
}
}
compilando, eu obtenho:
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"}
Erro meu, parece que funciona quando uso o tsc. Parece ser um problema com a integração gulp. Obrigado.
@mhegazy @sheetalkamat , tenho o seguinte tsconfig.json:
{
"compilerOptions": {
"rootDir": "./",
"outDir": "./out",
"sourceMap": true
}
}
minhas fontes estão em ./src
E nos mapas de origem tenho "sources":["../../src/index.ts"]
Isso é correto para o desenvolvimento, mas o que eu quero fazer para a construção de produção é "sources":["src/index.ts"]
(porque eu emito mapas de origem com código-fonte e desejo na construção de produção ter ts perto de seu js). Existe maneira de fazer isso?
Comentários muito úteis
@mhegazy @sheetalkamat , tenho o seguinte tsconfig.json:
minhas fontes estão em ./src
E nos mapas de origem tenho
"sources":["../../src/index.ts"]
Isso é correto para o desenvolvimento, mas o que eu quero fazer para a construção de produção é
"sources":["src/index.ts"]
(porque eu emito mapas de origem com código-fonte e desejo na construção de produção ter ts perto de seu js). Existe maneira de fazer isso?