看起来TypeScript编译器会解析相对于tsconfig.json
文件位置的文件。
有没有办法指定一个替代的基目录,它将用于相对路径解析?
我想使用通用的tsconfig.json
文件来编译各种目录中的多个项目。
在TypeScript官方存储库中的Here's the related question。
我遇到了类似的问题,但在每个项目中用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编译器。也许有人有提示......希望现在有所帮助。