microsoft / microsoft/TypeScript

Path based Code navigation to /index.js seems broken

Aperta
#37,189 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Experience Enhancement Suggestion
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
2g 4h
PR unite (30g)
132

Descrizione

  • VSCode Version: 1.42.1
  • OS Version: Mac OS

Steps to Reproduce:
Code navigation seems broken when you import by path and the file is actually in an index.js file.
There are a couple of scenarios relevant to developing in react-native

  1. import from another package in a monorepo import SomeComponent from 'common-lib/Router, when the file is packages/common-lib/src/Router/index.js
  2. import in the same package import SomeComponent from 'modules/Router, when the file is src/modules/Router/index.js
  3. import SomeComponent from 'modules/Router, when the file is not actually index.js src/modules/Router/index.ios.js and src/modules/Router/index.android.js

In general, what works is loading a file name by name (not an index.js file)
What doesn't work is loading a file by path that is actually an index.js, index.native.js, index.ios.js, index.android.js etc file

My code structure is

root
    packages
           mobile
           server
                src
                       server
                       shared
           common-lib

There is some history here that is not ideal. But ok.

packages/server jsconfig.json

{
	"compilerOptions": {
		"target": "es2017",
		"allowSyntheticDefaultImports": false,
		"baseUrl": ".",
		"paths": {
			"common-lib/*": ["../common-lib/*"],
			"mobile/*": ["../mobile/*"],
			"modules/*": ["./src/shared/modules/*"],
			"components/*": ["./src/shared/components/*"],
			"router/*": ["./src/shared/router/*"],
			"server/*": ["./src/server*"],
			"App": ["./src/App"]
		}
	},
	"exclude": ["node_modules", "../../node_modules", "build"]
}

Does this issue occur when all extensions are disabled?: Yes

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo i tre casi di importazione con il packages/server jsconfig.json fornito, inclusi index.js e i file index specifici della piattaforma. Traccia la navigazione del codice per le importazioni basate sul percorso e confrontala con le importazioni di file denominati; il lavoro è completato quando la navigazione raggiunge il modulo risolto in ciascuno scenario elencato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, typescript
Ambito
developer-experience, devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.