找不到 TypeScript 模块

Posted

技术标签:

【中文标题】找不到 TypeScript 模块【英文标题】:Cannot find TypeScript Modules 【发布时间】:2019-08-16 01:22:07 【问题描述】:

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

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

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

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

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

    从版本的底部状态栏更改 VSCode 中 TypeScript 的工作区版本。 使用此命令从 node_modules 链接 evscode.d.ts 文件 ln -s /home/work/mymodule/node_modules/vscode.d.ts /usr/share/code/resources/app/out/vs/vscode.d.ts 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】:

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

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

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

所以,我猜一般的答案是包含除一般 src 之外的每个模块。

【讨论】:

你的架构是什么?【参考方案2】:

我在本地创建并使用 npm i file://<PATH> 安装的模块遇到了这个问题,该模块创建了一个到本地模块的符号链接。

项目构建良好,但 VSCode 的 typescript 语言服务器似乎找不到模块。

关闭并重新打开该文件夹并不能解决问题。

我通过转到模块的导入声明并使用 ctrl+space 对模块名称进行自动完成来填充以我的实际模块名称开头的模块列表来解决它。模块名称出现在建议的结果列表中(嗯,它是一个项目的列表)并且错误立即消失了。好的。任何。感谢微软。所以这是你可以尝试的其他方法。

【讨论】:

以上是关于找不到 TypeScript 模块的主要内容,如果未能解决你的问题,请参考以下文章

误报 Typescript 找不到模块警告

TypeScript 找不到模块 flatpickr,即使它包含 typescript 类型

Nuxt TypeScript 错误:nuxt:typescript 找不到模块'@/my-module'

TypeScript + moment.js:错误 TS2307:找不到模块'moment'

TypeScript 错误:找不到模块“时刻”

找不到带有 Webpack、Typescript、自定义模块目录的模块