Typescript: sourceRoot应该支持相对路径并尊重文件夹的等级

创建于 2015-10-08  ·  3评论  ·  资料来源: microsoft/TypeScript

提供sourceRoot时,它将直接按原样直接复制到源映射文件中。 使用rootDir和outDir选项无法正常工作。 例如,如果我具有以下结构:

回购/src/www/foo.ts
repo / src / bar.ts

并且我想将文件输出到repo / out /中,我尝试使用sourceRoot:'../src',它对于bar.js可以正常工作,但不适用于www / foo.js。 我希望这种解释是有道理的。

Question

最有用的评论

@mhegazy @sheetalkamat我有以下tsconfig.json:

{
    "compilerOptions": {
        "rootDir": "./",
        "outDir": "./out",
        "sourceMap": true
    }
}

我的来源在./src中
在源地图中,我有"sources":["../../src/index.ts"]
这对于开发是正确的,但是我要为生产构建执行的操作是"sources":["src/index.ts"] (因为我发出带有源代码的源映射,并且希望在生产构建中使其ts附近有ts)。 有办法吗?

所有3条评论

sourceRoot表示调试将用来查找相对于其的源的根。 如果只需要相对路径,请不要设置sourceRoot,而应该发生正确的事情。

所以这是我的设置:

tsconfig.json

{
    "compilerOptions": {
        "rootDir": "./",
        "outDir": "./out",
        "sourceMap": true
    }
}

编译,我得到:

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"}

我的错误,当我使用tsc时,它似乎可以正常工作。 似乎与gulp集成有关。 谢谢。

@mhegazy @sheetalkamat我有以下tsconfig.json:

{
    "compilerOptions": {
        "rootDir": "./",
        "outDir": "./out",
        "sourceMap": true
    }
}

我的来源在./src中
在源地图中,我有"sources":["../../src/index.ts"]
这对于开发是正确的,但是我要为生产构建执行的操作是"sources":["src/index.ts"] (因为我发出带有源代码的源映射,并且希望在生产构建中使其ts附近有ts)。 有办法吗?

此页面是否有帮助?
0 / 5 - 0 等级