解决 Cannot find module 'X' Error in TypeScript

10 min read

**当 TypeScript 在我们的项目中找不到第三方或本地模块时,会出现“找不到模块或其对应的类型声明”错误。要解决该错误,请确保安装该模块并尝试 在您的tsconfig.json文件中设置moduleResolutionnode

如果模块是第三方模块,请确保已安装它。

npm install module-name

npm install --save-dev @types/module-name

如果它是您遇到问题的第三方模块,请尝试删除您的 node-modules目录和package-lock.json文件,重新运行npm install 并重新加载您的 IDE。

rm -rf node_modules package-lock.json
npm install

如果这没有帮助或 TypeScript 无法找到您的本地模块,请尝试 moduleResolutionnode您的tsconfig.json文件中设置。

{
  "compilerOptions": {
    "moduleResolution": "node",
    //  ... rest
  }
}

如果这没有帮助,请确保您尝试导入的模块被 TypeScript 跟踪。它应该包含在您的include数组设置中,而不是出现在文件的exclude数组中tsconfig.json

// tsconfig.json
{
  "compilerOptions": {
    // ...
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "src/**/*.spec.ts"]
}

确保您没有通过将模块添加到exclude阵列中来排除该模块。

如果您的错误消息更改为**"Could not find declaration file for module 'module-name'"**,则 TypeScript 已找到您尝试导入的模块,但找不到其类型声明。