导入 AntDesign 组件的打字稿警告“找不到模块”

Posted

技术标签:

【中文标题】导入 AntDesign 组件的打字稿警告“找不到模块”【英文标题】:Typescript warning "Cannot find module" importing AntDesign components 【发布时间】:2019-07-08 10:19:24 【问题描述】:

我的环境包含在 Webpack 4.16、React 16.4、TypeScript 3.3 和 AntDesign 3.13 中

一切正常,我可以从 AntD 导入每个组件,以更好地优化我的文件和最终大小。

我还使用 webpack-bundle-analyzer 来检查我正在执行的每个导入的大小。

我的问题是我的编辑器收到警告:

如何添加我的 node_modules 库以免收到警告?为什么找不到模块也能正常工作?


更新 1

为了更好地理解它,我正在应用一些WebPack配置,看看是否有任何结果:

const getResolves = 
  extensions: ['.ts', '.js', '.tsx', '.less'],
  modules: ['src/less', 'src/ts', 'src', 'node_modules'],
  alias: 
    antd: path.resolve(__dirname, './node_modules/antd'),
  
;

我尝试为 antd 库添加别名。它像以前一样正常工作,但警告仍然存在。


更新 2

好消息!我可以找到一种让它工作的方法,这篇文章更新了一个答案。我会让这个问题打开,看看是否有其他人对此有不同的方法或更好的解释。


谢谢!

【问题讨论】:

你用的是什么版本的 Ant Design? 在我的帖子里... 3.13 【参考方案1】:

我在这里找到了这个人提出的解决方案:https://github.com/Microsoft/vscode/issues/25312#issuecomment-449609664

我刚刚在我的 tsconfig 文件中添加了一个新属性 "moduleResolution": "node"


  "compilerOptions": 
    "allowSyntheticDefaultImports": true,
    "baseUrl": "./src",
    "moduleResolution": "node",
    "outDir": "./dist/",
    "sourceMap": true,
    "noImplicitAny": true,
    "module": "es6",
    "target": "es5",
    "jsx": "react",
    "allowJs": true
  ,
  "exclude": [
    "node_modules"
  ]

【讨论】:

【参考方案2】:

如果你使用的是 webpack 最新版本(alpha 版本)那么你会发现这个问题,在使用 webpack 稳定版本之前不要更新 react 脚本。

antd lib 有一定的局限性,不兼容 vite 直到没有

另一个建议如果你想在 react 中集成 vite 那就等待 webpack 的最新稳定版本,并且 react 是在 18 或更高版本中引入该功能

【讨论】:

以上是关于导入 AntDesign 组件的打字稿警告“找不到模块”的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像导入打字稿?他说“找不到模块”

打字稿导入文本文件“错误 TS2307:找不到模块”

我无法导入已发布的打字稿库,出现以下错误:“找不到模块:无法解析 'tqt' in ...”

Jest,ts-jest,带有 ES 模块导入的打字稿:找不到模块

带有打字稿的VueJS单文件组件:找不到模块stuff.vue

打字稿模块分辨率