typescript - Varför kan jag inte använda @ för att ersätta den långa relativa sökvägen i min __tests__-mapp?


Jag initierade mitt Vue-projekt via vue-cli. Jag kan använda @ i min src-mapp, men det fungerar inte i min __tests__-mapp. Jag har redan lagt till konfiguration i min tsconfig.json-fil, men jag är inte säker på om det gäller för den här situationen.

"paths": {
  "@/*": ["src/*"]
},

Svar #1

Testframeworket behöver också konfigureras med sökvägsalias. Det är inte automatiskt konfigurerat med tsconfig.json eller vue.config.js (eller någon annan konfiguration).

För att konfigurera sökvägsaliaset i Jest, använd alternativet moduleNameMapper:

// <projectRoot>/jest.config.js
module.exports = {
  moduleNameMapper: [
    '^@/(.*)$': '<rootDir>/src/$1'
  ]
}

Detta är normalt konfigurerat för dig om du använder @vue/cli-plugin-unit-jest, men om du har satt upp Jest på egen hand utan pluginet, skulle du behöva den konfiguration som nämns ovan.