Vyhledávání na webu

reactjs - Jak přimět VSCode, aby zobrazoval chyby TypeScriptu pro soubory, které *nejsou* otevřené v editoru?


V mé [email aplikaci v TypeScriptu/React se chyby kompilátoru TS zobrazují v panelu Problémy pouze pro soubory, které mám otevřené v editoru VS Code. V důsledku toho někdy chyby nezachytím, dokud aplikaci skutečně nespustím.

Jak mohu nastavit TypeScript, aby automaticky kontroloval chyby překladače ve všech souborech kódu hned po otevření pracovního prostoru nebo při uložení změn souboru?

Zkoušel jsem přidat "watch": "tsc --watch" jako skript do package.json a pak spustit npm run-script watch v integrovaném terminálovém panelu, ale to má dva problémy:

  • chyby se zobrazují v panelu terminálu, ale neobjevují se v panelu Problémy ve VSCode
  • Musím to spustit ručně, místo aby se spustilo automaticky při načtení pracovního prostoru

Existuje lepší řešení?

Mimochodem, toto je stejná otázka jako Zobrazit problémy/chyby TypeScript v celém projektu ve WebStormu, ale jde o Visual Studio Code místo WebStormu.

Odpověď č. 1

K datu 24.10.2023 je ve všeobecně dostupném VS Code experimentální funkce pro povolení hlášení problémů v celém projektu. Přidejte následující do svého settings.json:

"typescript.tsserver.experimental.enableProjectDiagnostics": true

Stále se jedná o experimentální funkci (po několika letech zanedbávání), takže může být zároveň ohromující i zklamávající. Dobrou zprávou je, že zjevně funguje i s jinými jazyky a respektuje vaše konfigurační soubory.

Lidé uvádějí, že tato možnost prohledává obsah node_modules, i když je na seznamu exclude, ale přidání 'skipLibCheck' pomáhá

Sledujte toto místo.

Odpověď č. 2

K listopadu 2019 bohužel toto není ve VS Code podporováno přímo. Viz https://github.com/Microsoft/vscode/issues/13953.

Nejlepším řešením, které jsem mohl najít, je přidat úlohu do souboru tasks.json, která spustí tsc --watch, a nastavit ji tak, aby se spustila při otevření pracovního prostoru nebo složky.

Níže je ukázková konfigurace pro tasks.json. Všimněte si, že "www" ve výše uvedeném úryvku odkazuje na složku s tsconfig.json, kterou chcete zkontrolovat. Nahraďte ji názvem své vlastní složky, vzhledem k kořenovému adresáři vašeho pracovního prostoru.

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "tsc watch",
            "type": "shell",
            "command": "./node_modules/.bin/tsc",
            "isBackground": true,
            "args": ["--watch", "--noEmit", "--project", "www"],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "reveal": "never",
                "echo": false,
                "focus": false,
                "panel": "dedicated"
            },
            "problemMatcher": "$tsc-watch",
            "runOptions": {
                "runOn": "folderOpen"
            }
        }
    ]
}

Všimněte si, že automaticky spouštěné úlohy se zdají být ve výchozím nastavení neaktivní. Pokud se chcete přihlásit k automatickému spouštění úloh, postupujte podle pokynů zde: https://stackoverflow.com/a/58866185/126352

Toto řešení bylo upraveno z odpovědi @molinx v GitHub issue uvedeném výše a bylo vylepšeno díky komentáři @kumar303 níže.

Související články