Есть программа: /home/me/project/main.ts
import {Sobaka} from "./auto/sobaka.js"
import {Blabla} from "./auto/blabla.js"
console.log("hello")
Проблема в
/home/me/project/main.ts:N:M - error TS2307: Cannot find module './auto/sobaka.js' or its corresponding type declarations.
потому, что на самом деле никакого ./auto/
в текущем поддереве нет и никогда не будет! Это самое интригующее и раскрыто далее после заголовка «ЦИМЕС ВОПРОСА». Что там за Sobaka и Blabla читателю не важно, суть не в них, они норм. Если их положить в текущий каталог с main.ts и написать «./sobaka.js», то всё работает.
Так же есть /home/me/project/tsconfig.json
:
{
"compilerOptions": {
"target" : "ES2016",
"module" : "nodenext",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": false,
"moduleResolution": "nodenext",
"sourceMap": false,
"strictNullChecks" : true,
"strictPropertyInitialization" : true,
"outDir" : "/tmp/some/output/dir/blabla",
"rootDirs" : [
"/tmp/generated",
"/home/me/project"
]
},
"include" : [
"/home/me/project/main.ts"
]
}
Запускаю обычно так и всё собирается:
tsc --build /home/me/project/tsconfig.json
.
Обычно, это когда не нужны были извращения из этого треда.
цимес вопроса:
Есть некий автосгенерированный .ts код, можно сказать «модуль» (при моём слабом понимании теории модулей TS): .ts файлы в папочке /tmp/generated/
или в любом другом одноразовом месте, про которое (место) базовый код знать не хочет:
/tmp/generated/auto/sobaka.ts
/tmp/generated/auto/blablabla.ts
Вот их инклудить я и хочу в main.ts
, но не знаю как. Класть эти файлы в основное дерево (в репу) нельзя. Они генерятся при каждой сборке, там всякие актуальные константы и одноразовые интерфейсы.
-
Пробовал добавить
/tmp/generated/
вrootDirs
как показано вtsconfig.json
выше - не взлетело/ -
Пробовал такое:
import {Sobaka} from @auto/sobaka.js
И добавить в tsconfig.json
такое:
...
"baseUrl" : "/home/me/project/",
"paths" : {
"@auto/*" : ["/tmp/generated/auto/*"]
}
...
Ошибка та же.
Помогите научиться инклудить валяющуюся где угодно по абсолютному пути фигню успешно, не указывая абсолютных путей в коде? Спасибо.