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

Ita*_*ges 4 typescript reactjs webpack antd

我的环境包括 Webpack 4.16、React 16.4、TypeScript 3.3 和 AntDesign 3.13

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

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

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

找不到 antd 模块

如何添加我的 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'),
  }
};
Run Code Online (Sandbox Code Playgroud)

我试图给antd lib添加一个别名。它像以前一样正常工作,但警告仍然存在。


更新 2

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


谢谢!

Ita*_*ges 7

我在这里找到了这个人提出的解决方案: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"
  ]
}
Run Code Online (Sandbox Code Playgroud)