microsoft / microsoft/TypeScript

VS Code variable inspection / watch does not work for default imports in NodeJS environment

Ouverte
#36,304 1 commentaire 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Bug Domain: JS Emit
Langage dominant
Go
Étoiles
111k
Forks
14.4k
Merge moyen
1 j 19 h
PR mergées (30 j)
117

Description

TypeScript Version: 3.7.5
VSCode Version: 1.41.1 2019-12-18

Search Terms:
VSCode TypeScript Default Import Renamed Can't Debug Watch Inspect

Code

filea.ts

const a: string = "hello";
export default a;

fileb.ts

import a from "./filea"
console.log(a);

tsconfig.json

{
   "compilerOptions": {
      "lib": [ "es6" ],
      "moduleResolution": "node",
      "module": "commonjs",
      "target": "es6",
      "sourceMap": true
   }
}

Expected behavior:

Works correctly in runtime
Variable a (imported one) can be inspected

Actual behavior:

Works correctly in runtime
Variable a (imported one) can't be inspected neither watched as VS Code says: not available

The problem is the variable a does not exist at runtime as the import is transpiled as:

const filea_1 = require("./filea");
console.log(filea_1.default);

Watching of filea_1.default works correctly, of course.

I am not sure if there is additional mapping somewhere, but everything else works well (breakpoints, other variable inspections...)

maybe the default imports can be transpiled as

const a = require("./filea").default;
console.log(a);

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par filea.ts, fileb.ts et tsconfig.json, puis examinez le JavaScript CommonJS émis et sa source map tout en reproduisant le comportement de watch dans VS Code. Déterminez si les noms des imports par défaut peuvent être mappés vers l’accès filea_1.default dans le fichier généré sans altérer la sortie d’exécution existante. C’est terminé lorsque la variable importée a peut être inspectée et surveillée dans l’environnement NodeJS.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
node.js, typescript
Domaine
compilers
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.