typescript - hitta filer i vscode med full repobaserad sökväg även om du använder flera rotmappar
Vi har ett TypeScript-monorepo som består av ett par paket. Vanligtvis bör vi ange dessa paket som separata poster i "folders": [...]-arbetsytans inställningar, vilket också behövs för att vissa tillägg ska fungera korrekt (t.ex. biome) [1].
Men när paket är konfigurerade som "mappar" kan kommandopaletten inte hitta filer med den fullständiga sökvägen relativt repo-roten, vilket är ett stort DX-problem t.ex. när man kopierar filvägar från terminalen, GitHub, osv. Den tillåter bara att hitta filer när man anger sökvägar relativt till "mapprot".
Låt oss säga att jag vill öppna en fil under packages/backend-common/src/foo/bar.ts.
Om arbetsytan endast definierar en "mapp", kan jag i cmd+p-kommandopaletten öppna filer med både deras fullständiga reptionssökväg eller paketrelativa sökväg:
// workspace setetings
"folders": [{ "path": ".", "name": "xyz" }],
Men om de separata paketen är konfigurerade som separata mappar fungerar bara den paketrelativa sökvägen:
// workspace settings
"folders": [
{ "path": "packages/backend-common" },
{ "path": ".", "name": "xyz" }],
]
Fråga: finns det något sätt att kringgå detta problem, för att kunna öppna filer snabbt med den fullständiga sökvägen också, samtidigt som man fortfarande använder separata "mappar" för varje paket?
[1] X-Y-problem förebyggande sektion :D Vi behöver inte ställa in paketen som separata "mappar", och vi vill egentligen inte, på grund av ytterligare UI-stök och problemet som beskrivs ovan, och vår setup fungerar bra med en rotpost. Jag försöker bara göra det för att biome-tillägget ska fungera korrekt för tillfället (andra tillägg, som jest & eslint tillåter att ställa in mappar oberoende, men biome gör det inte hittills, som beskrivs i ärendet länkat ovan).
Svar #1
Du kan öppna filer med fullständig sökväg när du använder flera mappar i samma arbetsyta. För att göra detta, specificera mappsökvägen som namn på mappen, inklusive snedstrecket i slutet, i arbetsyteinställningsfilen. Vscode kommer att lägga till detta mapp-namn när den söker efter filerna.
Exempel :
// workspace settings
{
"folders": [
{
"path": "packages/backend-common",
"name": "packages/backend-common/"
},
{
"path": "packages/components",
"name": "packages/components/"
}
],
}
Med ovanstående inställningar, när du söker på hela sökvägen, kommer du att se resultaten:




