typescript - Når brukes tsconfig.vitest.json i et standard vue@3-prosjekt?
Når jeg oppretter et standard vue@3-prosjekt (npm init vue@3), får jeg flere tsconfig-filer. En av dem er tsconfig.vitest.json. Når blir egentlig denne filen brukt? Jeg kan se at den brukes for "type check" (fra package.json):
"scripts": {
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false"
},
Imidlertid antyder navnet at det burde brukes når du kjører Vitest selv. Jeg kan imidlertid ikke se noe som vil få Vitest til å bruke denne konfigurasjonsfilen. Standardnavnet på Vitest-konfigurasjonsfilen er vitest.config.ts. Så nøyaktig når, under hvilke omstendigheter, brukes filen tsconfig.vitest.json?
Svar #1
tsconfig.vitest.json er en TypeScript-konfigurasjonsfil, den er bare nyttig for TypeScript, den endrer ingenting for kjøring av Vitest.
Denne filen er nyttig fordi du kan ha forskjellige TypeScript-konfigurasjoner mellom appfilene dine og testspesifikasjonsfilene dine. Dette er for det meste ønskelig fordi appfilene dine kjører i en nettleser, mens tester kjøres i et node-miljø hvor de kan ha tilgang til node-API-er som fs.
Eksempel :
// AppFile.js
import fs from 'fs' // will report a typescript error
// __tests__/myTest.spec.js
import fs from 'fs' // OK
Det er denne linjen i tsconfig.vitest.json som tillater bruk av Node API:
"types": ["node", "jsdom"]
Svar #2
Det er konfigurasjon for tsc-kompilatoren, som vue-tsc er basert på.
