设置TypeScript编译器的基本/工作目录

时间:2018-07-03 16:09:44

标签: typescript compilation tsc

TypeScript编译器似乎可以解析与tsconfig.json文件位置相关的文件。

是否有一种方法可以指定用于相对路径解析的备用基本目录?

我想使用通用的tsconfig.json文件来编译各个目录中的多个项目。

Here's the related question在TypeScript官方存储库中。

1 个答案:

答案 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编译器是不可能的。也许有人暗示了……希望对现在有所帮助。