Не удается найти модули TypeScript - PullRequest
2 голосов
/ 25 марта 2019

В очень большом смешанном проекте TS / JS, используя VSCode, я получаю следующую ошибку.

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

Приложение успешно собирается, и наша pre-commit ловушка, которая запускает eslint и тесты, не перестает работать.

Это происходит во всех .ts файлах, которые я импортирую .ts файлов. Я нашел пару ответов по этому вопросу, но ни один не помог.

То, что я до сих пор делал, включает в себя:

  1. Изменить версию рабочей области TypeScript в VSCode из нижней строки состояния в версии.
  2. Ссылка на файл vscode.d.ts из модуля node_modules с помощью этой команды ln -s /home/work/mymodule/node_modules/vscode.d.ts /usr/share/code/resources/app/out/vs/vscode.d.ts
  3. Установка NPM, даже удаление node_modules и перезапуск VSCode

Вот файл .tsconfig, который мы используем. Иногда в команде другие участники получают эту ошибку, но после npm install и перезапуска VSCode у них все в порядке.

{
  "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"]
}

Это не проблема с .tsconfig. Я исследовал это, и у нас есть правильные настройки. Просто поместите это там, для получения дополнительной информации по этому вопросу. Если у кого-то есть такая же проблема, как у меня, пожалуйста, оставьте ответ или ссылку на него. Спасибо !!

1 Ответ

0 голосов
/ 26 марта 2019

Я нашел ответ на свой вопрос. В tsconfig.json. Проблема заключалась в том, что в разделе include. У меня были проблемы в src/admin/...

Итак, я изменил файл, чтобы включить его. После этого у меня нет проблем:

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

Итак, общий ответ, который я предполагаю, состоит в том, чтобы включить каждый модуль, который вы используете, помимо общего src одного.

...