tsc - TypeScript kompajler ponekad zanemaruje strukturu, a ponekad zadržava strukturu mapa?


Pretpostavlja se da TypeScript kompajler kompajlira datoteke iz ./ u ./build/, koje se sastoje od nekoliko direktorija, od kojih jedan sadrži TypeScript izvor ./src/. To se radi pomoću sljedeće TypeScript konfiguracije:

{
  "compilerOptions": {
    /* Visit https://aka.ms/tsconfig.json to read more about this file */

    /* Basic Options */
    "target": "es2019",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
    "module": "commonjs",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
    "lib":  ["es2015","es2020"],                             /* Specify library files to be included in the compilation. */

    "sourceMap": true,                     /* Generates corresponding '.map' file. */
    "outDir": "build",                        /* Redirect output structure to the directory. */
    /* Strict Type-Checking Options */
    "strict": true,                           /* Enable all strict type-checking options. */
    "esModuleInterop": true,                  /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
 
    /* Advanced Options */
    "skipLibCheck": true,                     /* Skip type checking of declaration files. */
    "forceConsistentCasingInFileNames": true  /* Disallow inconsistently-cased references to the same file. */


  },
  "exclude": [
    ".idea",
    "build",
    "node_modules",
    "typings/globals",
    "typings/modules",
    "test"
  ]
}

Sada primjećujem da završne datoteke gradnje više nisu u direktoriju src u izradi, već da bi glavni ./src/app.ts bio kompajliran u ./build/app.js

Ovo samo po sebi nije problem, mogao bih jednostavno promijeniti izlazni direktorij. Međutim, kad god uklonim test direktorij - koji sadrži TypeScript - iz isključenih direktorija, ili kada dodam drugi izvorni direktorij, kompajliranje iznenada ne spljošti vrhunski nivo direktorija.

I ./src/app.ts postaje ./build/src/app.js.

Ovo čini daljnju obradu prilično teškom. Dakle, mogu li učiniti da se ne pokušava spljoštiti korijenski direktorij? -- Čak i izričito navođenje korijenskog direktorija uzrokuje ovo „spljoštavanje“. Dakle, navođenje ./src/ kao jednog od korijena ne bi radilo jer bi taj direktorij sam mogao biti spljošten ako sadrži samo jedan poddirektorij s Typescriptom.