TypeScript编译器似乎可以解析与tsconfig.json
文件位置相关的文件。
是否有一种方法可以指定用于相对路径解析的备用基本目录?
我想使用通用的tsconfig.json
文件来编译各个目录中的多个项目。
Here's the related question在TypeScript官方存储库中。
答案 0 :(得分:0)
我遇到了与您类似的问题,但是在每个项目中都使用tsconfig.json
解决了该问题。
我有前端和后端代码以及两者之间的共享代码。它具有以下目录结构。
/my-project
/common
*.ts
/frontend
*.ts
tsconfig.json
/backend
/src
*.ts
tsconfig.json
这里是backend/tsconfig.json
:
...
"compilerOptions": {
...
"outDir": "./dist",
...
}
...
Typescript编译器会根据您的rootDir
自动确定所有*.ts
文件中最大的公共祖先目录,即tsconfig.json
。您甚至不需要显式指定rootDir
,因为编译器会将层次结构移至my-project
并将其设置为根。
backend/some.ts
中的导入看起来像:
import { Foo } from '../../common/some-shared';
由于编译器的自动rootDir
计算,唯一的麻烦是backend/dist
目录内的输出如下所示:
/dist
/common
*.js
/backend
/src
*.js
我还没有弄清楚如何在编译之前不使用Webpack进行任何复制或捆绑等方法来摆脱丑陋的dist/backend/src
结构。从我的搜索来看,(仍然)仅使用Typescript编译器是不可能的。也许有人暗示了……希望对现在有所帮助。