build - typescript outDir-innstilling i tsconfig.json fungerer ikke
Jeg ser ut til å ikke få outDir-flagget til å fungere når det brukes i package.json. Katalogstrukturen er ganske enkel: tsconfig.json på rotnivå, sammen med en src/-katalog og en enkelt index.ts-fil pluss andre kataloger som representerer andre moduler.
Når jeg kjører tsc-kommandoen på indeksfilen, oppretter den en ny fil ved siden av den i stedet for i byggekatalogen. Hva gjør jeg galt?
Min tsconfig:
{
"compilerOptions": {
"outDir": "build"
}
}
Mitt npm build-script:
"build": "tsc src/index.ts"
Jeg kjører skriptet fra rotmappen til prosjektet. Interessant nok fungerer det helt fint å kjøre det samme skriptet med en --outDir-flag.
Svar #1
Når du sender inn filer for kompilering med tsc src/index.ts, blir din tsconfig.json ignorert.
Fra dokumentasjonen:
Når inndatafiler er spesifisert på kommandolinjen, blir tsconfig.json-filer ignorert.
Din npm build-skript bør bare være tsc uten å sende noen filer.
Svar #2
I mitt tilfelle ble det ignorert fordi jeg hadde noEmit: true i tsconfig.json. Av en eller annen grunn ble filene fortsatt generert, men i samme katalog i stedet for å følge outDir.
Konfigurasjonsfilen ble lest riktig, og denne feilen dukket også opp når flagget ble brukt.
Svar #3
Hvis du bruker incremental-kompilatoralternativet, kan det hende at du ikke får output hvis du har slettet/endret filer i din outDir men ikke har fjernet .tsbuildinfo-filen.
Mitt problem var litt annerledes, men Google førte meg hit - så jeg tenkte at andre kanskje også.
Svar #4
Dette er min mappestruktur.
Hold typescript-filene i src-mappen og hold tsconfig.json i rotmappen.
I tsconfig.json-filen legg til foldernavn for outDir i compilerOptions
"compilerOptions": {
"outDir": "build",
"module": "commonjs",
"target": "es6",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noImplicitAny": true,
"sourceMap": true
},
og kjør kommandoene nedenfor.
bare gå til rotmappen og skriv
tsc
eller
tsc --outDir .
som vil bygge outDir-mappen med js- og map.js-filer.
kilde: https://github.com/Microsoft/TypeScript/issues/10585

