visual studio code - VSCode Intellisense TypeScript: Exkludera sökväg som refereras i paths
Jag arbetar med en Angular-applikation, med en del av koden grupperad i sina egna (npm) projekt så att de kan refereras av andra applikationer.
När jag skriver kod i mappen app, föreslår VSCodes Intellisense följande sökvägar för automatisk import, båda fungerar:
import 'FooComponent' from module "../../../projects/company/shared/src/foo/foo.component";
import 'FooComponent' from module "@company/shared";
Mitt mål är att göra "@company/shared" importen till standardvalet. Det skulle vara ännu bättre om den relativa sökvägen kunde döljas helt. Hittills har jag försökt följande:
typescript.preferences.importModuleSpecifier: non-relativetypescript.preferences.importModuleSpecifierEnding: minimal- Utesluter katalogen i tsconfig.json efter att ha specificerat sökvägarna.
Hittills har dessa inte löst mitt problem.
Jag har en Angular-projektstruktur som liknar denna:
ApplicationName
- dist
- e2e
- node_modules
- projects
- company
- domain
- shared
- src
- app
tsconfig.json
Inom tsconfig.json refererar jag till shared-projektet i paths:
{
"compilerOptions": {
// standard stuff
"baseUrl": "src",
"paths": {
@company/domain: [
../projects/company/domain/src/public-api
],
@company/shared: [
../projects/company/shared/src/public-api
]
},
"exclude": [
"./dist/**,",
"**/projects/company"
]
}
Finns det ett sätt att dölja det långa "../../../projects/company/shared/src/foo/foo.component" importförslaget? Det tar upp standarden och skapar brus när det finns flera autokompletteringsförslag för foo.
Svar #1
Lägger till
"typescript.preferences.importModuleSpecifier": "project-relative"till settings.json i vscode fungerade för mig.
Jag var tvungen att starta om TS-servern för att den skulle dyka upp. (Kommandopalett --> Typescript: Restart TS Server.)
Nu är standardförslaget för import @company/packageName, vilket är vad jag ville ha.
Svar #2
I mitt fall var jag tvungen att ta bort alla TypeScript-importförlängningar (auto import, TypeScript Hero, TypeScript Importer), och sedan ändra min : typescript.preferences.importModuleSpecifier från relativ till projekt-relativ.