Vyhledávání na webu

javascript - Nelze najít moduly TypeScriptu


Ve velmi velkém smíšeném projektu TS/JS při použití VSCode dostávám následující chybu.

Cannot find module 'shared/common/enums/httpMethod'.ts(2307)

Aplikace se úspěšně sestavuje a náš pre-commit hook, který spouští eslint a testy, nepadá.

Toto se děje ve všech souborech .ts, do kterých importuji soubory .ts. Našel jsem několik odpovědí k dané problematice, ale žádná nepomohla.

To, co jsem zatím udělal, zahrnuje:

  1. Změňte verzi TypeScriptu v pracovním prostoru ve VSCode pomocí spodního stavového řádku v části Verze.
  2. Propojte soubor vscode.d.ts z node_modules tímto příkazem ln -s /home/work/mymodule/node_modules/vscode.d.ts /usr/share/code/resources/app/out/vs/vscode.d.ts
  3. NPM Install, dokonce odstranil node_modules a restartoval VSCode

Zde je soubor .tsconfig, který používáme. Občas na týmu dostanou jiní členové tuto chybu, ale po npm install a restartování VSCode je vše v pořádku.

{
  "compilerOptions": {
    "baseUrl": "./src",
    "jsx": "react",
    // Target latest version of ECMAScript.
    "target": "esnext",
    // Search under node_modules for non-relative imports.
    "moduleResolution": "node",
    // Process & infer types from .js files.
    "allowJs": true,
    // Don't emit; allow Babel to transform files.
    "noEmit": true,
    // Enable strictest settings like strictNullChecks & noImplicitAny.
    "strict": true,
    // Disallow features that require cross-file information for emit.
    "isolatedModules": true,
    // Import non-ES modules as default imports.
    "esModuleInterop": true,
    "skipLibCheck": true
  },
  // Import custom typings
  "include": ["src/shared/**/*", "./typings"]
}

To není problém s .tsconfig. Zkoumal jsem to a máme správná nastavení. Jen to tady uvádím, pro více informací o této záležitosti. Pokud má někdo stejný problém jako já, prosím, zveřejněte odpověď nebo odkaz na ni. Díky!!

Odpověď č. 1

Našel jsem odpověď na svou otázku. V tsconfig.json. Problém byl v sekci include. Měl jsem problémy v src/admin/...

Takže jsem soubor podle toho upravil, aby to zahrnoval. Po té už nemám žádné problémy:

  "include": ["src/shared/**/*", "src/admin/**/* ", ./typings"]

Takže, obecná odpověď je asi zahrnout každý modul, který používáte kromě obecného src.

Související články