TSC 不断在 'outDir' 中创建子文件夹

TSC keeps creating subfolders in the 'outDir'

您好!

我正在使用 TypeScript 开发一个小项目,这需要我有两个不同的 tsconfig.json 文件,它们都继承自我的 tsconfig.base.json 文件。

我 运行 遇到编译器在我声明的 outDir 中创建子文件夹的问题,这有点让我发疯。

这是我的 tsconfig.base.json 文件:

{
    "compilerOptions": {
      "target": "es6",
      "module": "commonjs",
      "resolveJsonModule": true,
      "lib": ["es6", "dom"],
      "esModuleInterop": true,
    },
    "exclude": [
      "node_modules"
    ]
}

这就是派生的 tsconfig.src.json 的样子:

{
    "extends": "./tsconfig.base.json",
    "compilerOptions": {
        "rootDirs": ["./src/ts", "."],
        "outDir": "./src/js/"
    },
    "exclude": [
        "page/**/*.ts",
        "tsconfig.page.json"
    ],
    "include": [
        "src/**/*.ts",
        "service_account.json"
    ],
}

我当前的项目结构如下所示:

.
+-- node_modules/
+-- src/
|    +-- js/ (this is where my typescript files should be compiled to)
|    +-- ts/ (this is where all my ts files are located)
+-- tsconfig.base.json
+-- tsconfig.src.json
+-- service_account.json

现在,如果我 运行 我的 build:backend 脚本 ("build:backend": "tsc -p ./tsconfig.source.json"),编译器会创建两个子文件夹,这使我的项目结构如下所示:

.
+-- node_modules/
+-- src/
|    +-- js/ (this is where my typescript files should be compiled to)
|        +-- src/
|            +-- ts/ (here are all compiled js files now)
|    +-- ts/ (this is where all my ts files are located)
+-- tsconfig.base.json
+-- tsconfig.src.json
+-- service_account.json

有人知道导致此问题的原因吗?

感谢所有的帮助!提前谢谢大家!

您需要将所有 inputs 合并到一个文件夹中,并将所有 outputs 合并到 inputs 中未包含的文件夹中文件夹。

示例修复

{
    "extends": "./tsconfig.base.json",
    "compilerOptions": {
        "rootDir": "/src/ts",
        "outDir": "./src/js"
    },
    "exclude": [
        "page/**/*.ts",
        "tsconfig.page.json"
    ]
}

并将 service_account.json 也移动到 src/ts