sourceRootを指定すると、そのままソースマップファイルに直接コピーされます。 これは、rootDirおよびoutDirオプションでは正しく機能しません。 たとえば、次の構造がある場合:
repo / src / www / foo.ts
repo / src / bar.ts
ファイルをrepo / out /に出力したいので、sourceRoot: '../ src'を使用してみました。これは、bar.jsでは問題なく機能しますが、www /foo.jsでは機能しません。 この説明が理にかなっていることを願っています。
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を配置したいため)。 それを行う方法はありますか?
最も参考になるコメント
@mhegazy @sheetalkamat私は次の
私のソースは./srcにあります
そしてソースマップには
"sources":["../../src/index.ts"]
これは開発には正しいですが、本番ビルドでやりたいのは
"sources":["src/index.ts"]
(ソースコードを含むソースマップを発行し、本番ビルドではjsの近くにtsを配置したいため)。 それを行う方法はありますか?