microsoft / microsoft/TypeScript
jsconfig.json gives broken intellisense for js files with module.exports
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
- VSCode Version: 1.38.0
- TS Version: 3.6.2
- OS Version: Ubuntu 18.04 LTS bionic beaver
- Tested with no extensions
- Can not really find a solution to this problem after a lot of searching
I have a personal js library that I use both in browser-side and node-side for a lot of my personal projects . In fact the library itself has its own project . The js library looks like this :
const library = {};
library.foo = function() {/*browser code*/}
if (typeof module === 'object') {
library.bar = function() {/*node code*/}
module.exports = library;
}
For a browser project (library is used via script tag) If I try to get intellisense via jscofig.json for such a file I get broken intellisense (by typing f or b I get suggestions for foo or bar respectively , but there is no library suggestion when I type l , and even if I type library I get no suggestion about its properties ) .
For a node project everything works fine regarding intellisense using require .
The issue here is with module.exports . If I change it to var substitute = module; substitute.exports = library; then I get intellisense for browser project via jsconfig.json but broken intellisense (as described before) for node via require .
How can I get intellisense to work for both require and jsconfig.json ?
Before you attempt to check intellisense you should know the following :
I open index.js in a project that does not have any other js file and no
jsconfig.jsonfile . Then I view in the same VScode session some other , completely unrelated to my project , js files . For whatever file I view I get intellisense (of the globally scoped variables that have been defined vialet,varorconst) when I am editing index.js . If the unrelated js file happens to have module.exports then the intellisense that I get in index.js for that file is broken like it has been described before .
I stop getting intellisense for files that I view when I create ajsconfig.jsonfile file in the folder of index.js . But still there is the same broken behavior with intellisense for files that are included viajsconfig.jsonand have module.exports .
Please restart vscode to test if intellisense really works .
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il comportamento in VSCode 1.38.0 con TypeScript 3.6.2 utilizzando l’index.js mostrato, jsconfig.json, l’uso nel browser e l’uso di Node require. Confronta IntelliSense per module.exports diretto con l’alias sostitutivo e considera conclusa l’issue quando sia jsconfig.json sia require forniscono la libreria e le relative proprietà in modo coerente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, typescript, vscode
- Ambito
- developer-experience, tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 30/100