不久前,我在我的项目中安装了webpack-dev-server v3.11.0,正如我最近检查的那样,该项目的依赖项为http-proxy-middleware v0.19.1。在我单独安装http-proxy-middleware包之前,它一直正常工作,但在1.1.1版本中。现在,当我构建TS项目时,它会引发以下错误:
node_modules/@types/webpack-dev-server/index.d.ts:30:53 - error TS2694: Namespace '"E:/Pro
jects/shop/node_modules/http-proxy-middleware/dist/index"' has no exported me
mber 'Config'.
30 [url: string]: string | httpProxyMiddleware.Config;
~~~~~~
node_modules/@types/webpack-dev-server/index.d.ts:36:29 - error TS2694: Namespace '"E:/Pro
jects/shop/node_modules/http-proxy-middleware/dist/index"' has no exported me
mber 'Config'.
36 } & httpProxyMiddleware.Config;
~~~~~~显然,webpack-dev-server现在使用的是我安装的独立http-proxy-middleware v1.1.1,而不是它默认的子依赖v0.19.1,它在导出的东西上(至少)有所不同。
$ npm ls http-proxy-middleware
shop@1.0.0 E:\Projects\shop
+-- http-proxy-middleware@1.1.2
`-- webpack-dev-server@3.11.0
`-- http-proxy-middleware@0.19.1有没有办法迫使webpack-dev-server仍然使用它的子依赖v0.19.1,而我将能够使用v1.1.1?或者,有没有更好的方法,我可以使用更新的版本,没有这样的问题?
我读过关于收缩包装的文章,但这似乎是一个过分的情况,因为只有一个相互矛盾的包裹--但也许我错了。
更新
作为解决办法,我删除了独立的http-proxy-middleware v1.1.1包,并在我的模块中使用了webpack-dev-server依赖包。然而,我不认为这是解决问题的办法,所以我想知道如何正确地做到这一点。
发布于 2021-04-27 12:04:52
当您进行npm审计时,它会通知您依赖项。您可以执行npm审核修复,并且它将临时修复它们,但是一旦您安装了另一个依赖项或完成npm安装,这些修补程序就会丢失。
为了确保对所有npm包使用特定的依赖关系,您可以使用名为- npm -强制解析的npm包。
安装npm-force-resolutions
npm i npm-force-resolutions "scripts": {
"preinstall": "node ./node_modules/npm-force-resolutions/index.js"
}package.json
"resolutions": {
"minimist": "1.2.5"
},npm i完成了!
发布于 2021-04-27 01:12:34
webpack-dev-server@4.0.0-beta.2使用http-proxy-middleware@1.3.0,也许已经升级到它了?
https://stackoverflow.com/questions/67131435
复制相似问题