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.

Relaterade artiklar