У меня есть серия проектов Typescript (каждая из которых является реальной компиляционной целью, с ее собственным tsconfig.json). Они являются каталогами сестер в одном репозитории кода, например:
myrepo
--/common
--/project1
--/project2
Чтобы разделить код между project1 и project2, я разделил код с общим кодом на common. Я хотел бы разрешить project1 и project2 код для импорта классов из common, но не друг от друга (и common не сможет импортировать классы из двух других).
В идеале код в project1 может выглядеть следующим образом:
import {CommonClass} from 'common/commonclass';
Я нашел способ разрешить импорту работать правильно, поместив его в tsconfig.json из project1:
"baseUrl":".",
"paths":{
"*":["*","../*"]
}
Однако я еще не нашел способа ограничить, какой из других подпроектов может быть предметом import. Я попытался использовать rootDirs, надеясь, что он ограничит допустимые исходные файлы тем же способом, что и rootDir, но на самом деле этого не делает.
Как я могу настроить белый список того, какой код является импортируемым в каждом из моих проектов? Или есть только лучший способ создания подпроектов в Typescript, о котором я не знаю?