首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack开发服务器包与http代理中间件之间的冲突,也就是它的子依赖关系。

webpack开发服务器包与http代理中间件之间的冲突,也就是它的子依赖关系。
EN

Stack Overflow用户
提问于 2021-04-16 19:52:45
回答 2查看 410关注 0票数 1

不久前,我在我的项目中安装了webpack-dev-server v3.11.0,正如我最近检查的那样,该项目的依赖项为http-proxy-middleware v0.19.1。在我单独安装http-proxy-middleware包之前,它一直正常工作,但在1.1.1版本中。现在,当我构建TS项目时,它会引发以下错误:

代码语言:javascript
复制
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,它在导出的东西上(至少)有所不同。

代码语言:javascript
复制
$ 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依赖包。然而,我不认为这是解决问题的办法,所以我想知道如何正确地做到这一点。

EN

回答 2

Stack Overflow用户

发布于 2021-04-27 12:04:52

当您进行npm审计时,它会通知您依赖项。您可以执行npm审核修复,并且它将临时修复它们,但是一旦您安装了另一个依赖项或完成npm安装,这些修补程序就会丢失。

为了确保对所有npm包使用特定的依赖关系,您可以使用名为- npm -强制解析的npm包。

安装npm-force-resolutions

代码语言:javascript
复制
npm i npm-force-resolutions

  1. 添加到package.json:

代码语言:javascript
复制
  "scripts": {
    "preinstall": "node ./node_modules/npm-force-resolutions/index.js"
  }

package.json

  1. 声明将在其他npm包中使用哪个版本的依赖项:示例添加到

代码语言:javascript
复制
  "resolutions": {
    "minimist": "1.2.5"
  },

  1. npm安装

代码语言:javascript
复制
npm i

完成了!

票数 1
EN

Stack Overflow用户

发布于 2021-04-27 01:12:34

webpack-dev-server@4.0.0-beta.2使用http-proxy-middleware@1.3.0,也许已经升级到它了?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67131435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档