Задача
[Заражает только создателей библиотеки машинописи]
если база кода содержит абсолютные пути (путем настройки tsconfig.json
и веб-пакета), то компилятор машинописного текста сгенерирует все файлы d.ts с теми же абсолютными путями, которые бесполезны, потому что мои потребители lib не могут ничего сделать с ними.
Обходные
Каждая библиотека, которую я видел , выполняет одно из следующих действий:
- создание собственного файла single-file.d.ts вручную
- используя относительный путь в своей базе кода, поэтому выходные файлы d.ts также содержат относительные пути.
Очевидно, что обе альтернативы - отстой.
Другое решение, о котором я думал
- создание одного файла d.ts (импорт не будет).
Мне не удалось найти рабочую библиотеку для этого.
- не уверен, возможно ли это: перед запуском ts-loader нам нужно запустить магический babel-плагин, чтобы преобразовать каждый абсолютный путь к родственнику, просмотрев раздел webpack-resol-module в файле webpack.config.
Мой текущий статус
Я создал библиотеку, которая генерирует поврежденные файлы d.ts с абсолютными путями:
https://github.com/stavalfi/lerna-yarn-workspaces-example/tree/master/packages/x-core
index.ts:
import { z, x } from 'shalom' // problem
export default function awesomeFn(y: number): x {
return z(1)
}
export { z, x } from './shalom' . // not a problem
сгенерированный index.d.ts:
import { x } from './shalom'; /// GOOD - becuase I used relative
export default function awesomeFn(y: number): x;
export { z, x } from 'shalom'; /// BAD - because I used absolute
//# sourceMappingURL=index.d.ts.map .
Вопрос
Существуют ли какие-либо решения / обходные пути, которые не мешают использовать абсолютный путь или создавать мой собственный файл single.d.ts вручную?