找不到TypeScript模块

时间:2019-03-25 18:01:11

标签: javascript node.js typescript visual-studio-code eslint

在一个使用VSCode的大型TS / JS混合项目中,出现以下错误。

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

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

在我导入.ts文件的所有.ts文件中都会发生这种情况。我在此问题上找到了两个答案,但没有一个帮助。

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

  1. 从版本底部的状态栏中更改VSCode中TypeScript的工作区版本。
  2. 使用此命令从node_modules链接vscode.d.ts文件 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没问题。我对其进行了研究,并且设置正确。只需将其放到那里,以获取有关此问题的更多信息。如果有人和我有同样的问题,请发布答案或指向它的链接。谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

因此,我想,一般的答案是包括除一般的src之外的所有模块。

答案 1 :(得分:0)

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

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

关闭并重新打开文件夹没有解决问题。

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