Typescript: sourceRoot должен поддерживать относительные пути и уважать иерархию папок

Созданный на 8 окт. 2015  ·  3Комментарии  ·  Источник: microsoft/TypeScript

При поставке sourceRoot он просто напрямую копируется в файл исходной карты как есть. Это неправильно работает с параметрами rootDir и outDir. Например, если у меня следующая структура:

репо / SRC / www / foo.ts
репо / 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 были рядом с js). Есть ли способ это сделать?

Все 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 были рядом с js). Есть ли способ это сделать?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги