typescript tsc ekskluder med kommandolinjeargumenter
Jeg jobber med et verktøy som trenger å sette opp kompilering dynamisk. I så fall må vi opprettholde et tsconfig JSON-objekt i en database.
Mens vi bruker det til å kompilere på visse maskiner, er det en filskrivingshandling. Jeg mener vi må hente tsconfig-dataene og skrive dem inn i en tsconfig.json-fil, og deretter starte tsc-kompileringen.
Vel, det virker unødvendig å skrive denne konfigurasjonsfilen i hele prosessen, så jeg leter etter en måte å generere en tsc-kommandolinje fra tsconfig json.
Fra kontordokumentet fant jeg ut at det er lett å omforme compilerOptions til CLI-argumenter, men har ingen idé om hvordan man skal håndtere exclude.
{
"compilerOptions": {
"module": "system",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "../../built/local/tsc.js",
"sourceMap": true
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
Med saken over har jeg prøvd noe som:
tsc src/apis/**/* \
"\!node_modules" \ # this didn't work
"\!**/*.spec.ts" \ # this didn't work
--module "system" \
--noImplicitAny true \
--removeComments true \
--preserveConstEnums true \
--outFile "../../built/local/tsc.js" \
--sourceMap true
Det fungerte ikke, jeg trenger noen forslag om hvordan tsc håndterer exclude-tilfellet. Takk for at du leste.
Svar #1
Jeg har en løsning, det er å blande tsconfig.files, tsconfig.include og tsconfig.exclude til et array, og deretter bruke globby på det, slik at vi manuelt kan få listen over filer som skal flates ut til CLI-argumenter.