microsoft / microsoft/TypeScript-Website

CRITICAL: createFile from createVirtualTypeScriptEnvironment does not create a file detectable by it's own updateFile

Offen
#2,972 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
TypeScript
Sterne
2.6k
Forks
1.5k
Ø Merge
2 T. 2 Std.
Gemergte PRs (30 T.)
7

Beschreibung

Page URL: https://github.com/microsoft/TypeScript-Website/blob/v2/packages/typescript-vfs/src/index.ts#L72

Issue: When calling updateFile on a newly created file, an error is thrown, stating Error: Did not find a source file for X. I believe the internal fs mapping does not get updated with the newly created files.

Here's an example:


    import {
        createDefaultMapFromCDN,
        createSystem,
        createVirtualTypeScriptEnvironment
    } from '@typescript/vfs';
    import ts from 'typescript';

    const compilerOpts = {
        target: ts.ScriptTarget.ES2021,
        module: ts.ScriptTarget.ES2020,
        lib: ['es2021', 'es2020', 'dom', 'webworker'],
        esModuleInterop: true
    };

    const fsMap = await createDefaultMapFromCDN(
        compilerOpts,
        ts.version,
        false,
        ts
    );
    const ENTRY_POINT = 'index.ts';
    fsMap.set(ENTRY_POINT, 'Hello World');

    const system = createSystem(fsMap);
    const env = createVirtualTypeScriptEnvironment(
        system,
        [ENTRY_POINT],
        ts,
        compilerOpts
    );

    env.createFile('test.js', 'test')
    env.updateFile('test.js', 'hello world') // throws error

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in packages/typescript-vfs/src/index.ts ungefähr bei Zeile 72 und reproduziere das Beispiel mit createVirtualTypeScriptEnvironment, createFile und updateFile. Verfolge, warum die neu erstellte test.js nicht gefunden wird, und überprüfe anschließend, dass ihre Aktualisierung den gemeldeten Source-File-Fehler nicht mehr auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.