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.