找不到 TypeScript 模块

Dim*_*fst 7 javascript node.js typescript eslint visual-studio-code

在一个非常大的混合 TS/JS 项目中,使用 VSCode,我得到以下错误。

Cannot find module 'shared/common/enums/httpMethod'.ts(2307)
Run Code Online (Sandbox Code Playgroud)

应用程序构建成功,我们pre-commit运行 eslint 和测试的钩子没有失败。

这发生在.ts我导入.ts文件的所有文件中。我在这个问题上找到了几个答案,但都没有帮助。

到目前为止,我所做的包括:

  1. 从版本的底部状态栏中更改 VSCode 中 TypeScript 的工作区版本。
  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"]
}
Run Code Online (Sandbox Code Playgroud)

这不是问题.tsconfig。我研究了它,我们有正确的设置。只是把它放在那里,以获取有关此事的更多信息。如果有人和我有同样的问题,请发布答案或链接。谢谢!!

Dim*_*fst 6

我找到了我的问题的答案。在tsconfig.json. 问题是在该include部分。我在src/admin/...

因此,我相应地修改了文件以包含该文件。之后我没有任何问题:

  "include": ["src/shared/**/*", "src/admin/**/* ", ./typings"]
Run Code Online (Sandbox Code Playgroud)

所以,我想一般的答案是包括除一般模块之外的每个模块src