【问题标题】:Set TypeScript compiler's base/working directory设置 TypeScript 编译器的基本/工作目录
【发布时间】:2018-07-03 16:09:43
【问题描述】:

看起来 TypeScript 编译器会根据 tsconfig.json 文件的位置解析文件。

有没有办法指定一个替代的基本目录,它将用于相对路径解析?

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

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

【问题讨论】:

    标签: typescript compilation tsc


    【解决方案1】:

    我遇到了和你类似的问题,但在每个项目中都用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部分:))吗?
    • 不幸的是没有:(我调查了一下,似乎它超出了Typescript编译器的范围,因此不会实现。
    猜你喜欢
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多