问题描述
我正在尝试使用与this repo类似的设置来尝试使用React和Express创建一个全栈打字稿应用程序。
repo使用诸如nodemon之类的tsc-watch来监视服务器文件,然后使用webpack-dev-server将响应静态文件托管在端口8085上。同时,运行在3000上的服务器通过以下方式呈现react应用程序:在8085将所有静态请求代理到/ static。
当我克隆仓库时,一切正常。但是,在我自己的仓库中(我试图学习如何进行类似的配置,服务器不断抛出此错误:
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?还是我完全想念其他东西?
如果需要,我可以发布代码。
解决方法
以下一些事实可能会有所帮助:
- statics-router.ts is using
http-proxy-middleware
,版本"^1.0.3" -
webpack-dev-server
依赖于版本"0.19.1" -
Config
上的http-proxy-middleware
在版本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
,而不是版本{{1 }}像0.19.1
一样
要解决此问题,只需添加:
webpack-dev-server
到共享的"skipLibCheck": true,