Typescript: sourceRootは相対パスをサポートし、フォルダーの採用を尊重する必要があります

作成日 2015年10月08日  ·  3コメント  ·  ソース: microsoft/TypeScript

sourceRootを指定すると、そのままソースマップファイルに直接コピーされます。 これは、rootDirおよびoutDirオプションでは正しく機能しません。 たとえば、次の構造がある場合:

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

ファイルをrepo / out /に出力したいので、sourceRoot: '../ src'を使用してみました。これは、bar.jsでは問題なく機能しますが、www /foo.jsでは機能しません。 この説明が理にかなっていることを願っています。

Question

最も参考になるコメント

@mhegazy @sheetalkamat私は次の

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

私のソースは./srcにあります
そしてソースマップには"sources":["../../src/index.ts"]
これは開発には正しいですが、本番ビルドでやりたいのは"sources":["src/index.ts"] (ソースコードを含むソースマップを発行し、本番ビルドではjsの近くに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私は次の

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

私のソースは./srcにあります
そしてソースマップには"sources":["../../src/index.ts"]
これは開発には正しいですが、本番ビルドでやりたいのは"sources":["src/index.ts"] (ソースコードを含むソースマップを発行し、本番ビルドではjsの近くにtsを配置したいため)。 それを行う方法はありますか?

このページは役に立ちましたか?
0 / 5 - 0 評価