angular - Kan ikke forkorte importstier med tsconfig.json
Stiene jeg definerte i tsconfig.json fungerer ikke.
Jeg startet et prosjekt med Ionic 4 og ønsket å unngå stygge stier i importene. Jeg fant informasjon om å endre tsconfig.json, noe jeg gjorde. Jeg har allerede funnet disse svarene: How to use paths in tsconfig.json? og Cannot resolve tsconfig paths
Så min tsconfig.json ser slik ut:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./src",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
],
"paths": {
"@services/*": ["app/services/*"],
"@data/*": ["app/data/*"]
}
}
}
Og jeg får tilgang til en klasse som spesifiserer en bruker i tjenesten min:
import { User } from '@data/User';
Brukerklassen ser slik ut:
export class User {
...
}
Prosjektstrukturen min ser slik ut:
Jeg ser ingen forskjell mellom koden min og de forskjellige løsningene jeg delte. Feilen som vises er:
[ng] FEIL i src/app/services/profile.service.ts(3,22): feil TS2307: Kan ikke finne modul ''@data/User''. [ng]
Hva gjør jeg galt?
Svar #1
Du bør endre konfigurasjonen din slik
"paths": {
"@services/*": ["src/app/services/*"],
"@data/*": ["src/app/data/*"]
}
Fordi stien bør starte fra src-mappen
Da kan du importere som
import { User } from '@data/User';
Svar #2
Råd for Typescript-stier (spesielt i Angular CLI-kontekst)
Etter å ha satt Paths inne i din
tsconfig.jsonbør du starte serveren på nytt for å få det til å fungere som forventet.Sørg alltid for at banen din begynner med rotmappen for å unngå mulige feil, f.eks. å bruke
src-mappen som rot.
