typescript - WebStorm känner inte igen tsconfig-vägar
Vi har ett problem där WebStorm klagar på några namngivna sökvägar. Allt byggs dock bra med webpack.
Detta är vår filsstruktur:
apps
app1
tsconfig.e2e.json
src
tests
testsuite1
file.po.ts
libs
lib1
src
index.ts
libs
Vår index.ts för biblioteket:
export * from './lib';
Sökvägarna i vår tsconfig.e2e.json:
{
"compilerOptions": {
...
"paths": {
"@a/lib1": ["../../libs/lib1/src"],
}
}
}
Vår import är markerad som ej hittad i WebStorm i file.po.ts
import { Mo } from '@a/lib1';
Vi har aktiverat TypeScript-språktjänst i WebStorm och några andra liknande importer fungerar. Vi är nya på TypeScript och WebStorm, så kanske vi missar något.
Svar #1
Du måste starta om efter att ha lagt till en ny sökväg
Jag hade samma problem; efter att ha lagt till en ny sökväg i tsconfig.json-filen behövde jag starta om min Intellij IDEA för att den skulle känna igen sökvägen i importuttalanden.
"paths": {
"@alias/*": ["folder/*"],
},
Efter omstart slutade det att understryka sökvägen med en röd linje:
import { SomeFeatureModule } from '@alias/some-feature/some-feature.module';
Kontrollera om sökvägen är relativ till baseUrl
Om det inte löser problemet, kontrollklicka på själva aliaset för att se om det känns igen; ett klick bör ta dig till tsconfig.json-filen där sökvägsaliaset deklareras. Kontrollera också om den faktiska sökvägen korrekt tar hänsyn till compilerOptions-konfigurerade baseUrl-egenskapen. Sökvägen bör vara relativ till denna base-url.
Så till exempel:
"baseUrl": "src",
Detta skulle innebära att för exemplet ovan bör den befintliga mappen faktiskt vara:
src/folder/*
Svar #2
Angular *.spec.ts-filer
Jag hade ett liknande problem med ett Angular + NX-projekt i mina *.spec.ts-filer. Lösningen som pekades ut här fungerade för mig:
Jag var tvungen att lägga till:
"references": [
{
"path": "./tsconfig.lib.json"
},
{
"path": "./tsconfig.spec.json"
}
],
i tsconfig.json-filen för varje NX-bibliotek.
