【发布时间】:2018-07-03 16:09:43
【问题描述】:
看起来 TypeScript 编译器会根据 tsconfig.json 文件的位置解析文件。
有没有办法指定一个替代的基本目录,它将用于相对路径解析?
我想使用一个通用的tsconfig.json 文件来编译不同目录中的多个项目。
Here's the related question 在 TypeScript 官方存储库中。
【问题讨论】:
标签: typescript compilation tsc
看起来 TypeScript 编译器会根据 tsconfig.json 文件的位置解析文件。
有没有办法指定一个替代的基本目录,它将用于相对路径解析?
我想使用一个通用的tsconfig.json 文件来编译不同目录中的多个项目。
Here's the related question 在 TypeScript 官方存储库中。
【问题讨论】:
标签: typescript compilation tsc
我遇到了和你类似的问题,但在每个项目中都用tsconfig.json 解决了。
我有前端和后端代码以及两者之间的共享代码。它具有以下目录结构。
/my-project
/common
*.ts
/frontend
*.ts
tsconfig.json
/backend
/src
*.ts
tsconfig.json
这是backend/tsconfig.json:
...
"compilerOptions": {
...
"outDir": "./dist",
...
}
...
Typescript 编译器根据您的tsconfig.json 自动确定所有*.ts 文件中最大的共同祖先目录,即rootDir。您甚至不需要显式指定 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 编译器(仍然)不可能做到这一点。也许有人有提示...希望现在有所帮助。
【讨论】:
dist/backend/src结构(尤其是src部分:))吗?