【问题标题】:@Types is not using the correct module (Typescript, http-proxy-middleware, webpack, react)@Types 没有使用正确的模块(Typescript、http-proxy-middleware、webpack、react)
【发布时间】:2020-12-09 19:34:23
【问题描述】:

我正在尝试使用与 this repo 类似的设置来尝试使用 React 和 Express 创建一个全栈打字稿应用程序。

repo 使用类似于 nodemon 的 tsc-watch 来监视服务器文件,然后 webpack-dev-server 在端口 8085 托管 react 静态文件。同时运行在 3000 上的服务器通过以下方式渲染 react 应用程序在 8085 处将所有静态请求代理到 /statics。

当我克隆 repo 时,一切正常。但是,在我自己的存储库中(我正在尝试学习如何进行类似的配置,服务器不断抛出此错误:

node_modules/@types/webpack-dev-server/index.d.ts

然后:

node_modules/http-proxy-middleware/dist/index"' 没有导出的成员 'Config'。

当我进入 node_modules 时,我可以看到 @types/webpack-dev-server 期望有来自 http-proxy-middleware 的 Config。在@types/http-proxy-middleware 中有一个叫Config 的接口。但是,在正常的 http-proxy-middleware 节点模块文件夹中,没有,这就是导致错误的原因。

我的问题是如何让@types/webpack-dev-server 使用@types/http-proxy-middleware,而不仅仅是node_modules/http-proxy-middleware?还是我完全错过了其他东西?

如果需要,我可以发布代码。

【问题讨论】:

  • 你能分享你的回购吗?
  • 嗨@gilamran,是的,我现在就这样做
  • 您会看到,从广义上讲,这是您的代码 - 我现在跳过清单内容只是为了看看我是否可以让某些东西正常工作
  • 我将开始一个新的 repo,因为我意识到其中存在子模块问题

标签: webpack node-modules webpack-dev-server http-proxy-middleware


【解决方案1】:

以下几个事实可能会有所帮助:

  • statics-router.tsis usinghttp-proxy-middleware,版本"^1.0.3"
  • webpack-dev-server 取决于版本 "0.19.1"
  • http-proxy-middleware 上的 Config 在版本 1 中已删除。
  • 版本 1 的类型定义是 http-proxy-middleware 本身的一部分(而不是像以前那样在 @types 下)
  • 如果您查看/node_modules/@types/webpack-dev-server/package.json,您会在dependencies 上看到:"@types/http-proxy-middleware": "*"。请注意,它依赖于 .d.ts 的 @types 版本

看起来打字稿首先在node_modules/LIBRARY下搜索类型定义,然后在@types下搜索,所以它“找到”版本1的.d.ts,而不是像webpack-dev-server这样的版本0.19.1需要

要解决这个问题,只需添加: "skipLibCheck": true, 分享给tsconfig.json

【讨论】:

  • 非常感谢 Gil - 我会先看看能不能找到通过 @types 的方法
猜你喜欢
  • 2020-12-22
  • 2022-07-13
  • 1970-01-01
  • 2019-06-14
  • 2023-03-26
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
相关资源
最近更新 更多