强制npm更新依赖关系

时间:2018-11-12 12:58:28

标签: npm webpack

在我的项目中,我使用“ laravel-mix”,这取决于“ webpack-dev-server”

“ npm审核”报告我的版本webpack-dev-server上有一个high severity vulnerability,因此我一直试图将其更新为最新版本。.但没有成功。

我尝试过

npm update
npm update webpack-dev-server
npm update laravel-mix

没有成功。.我想问题是laravel-mix已经是最新的了,但是它的依赖关系还没有。

我试图添加一个更高版本的webpack-dev-server作为依赖项,希望它能替代旧版本,但是我只是两个版本共存:

npm ls webpack-dev-server
+-- laravel-mix@2.1.14
| `-- webpack-dev-server@2.11.3
`-- webpack-dev-server@3.1.10

我是否可以强制更新webpack-dev-server依赖项?我需要该项目的laravel-mix,并且由于我的资产是在生产服务器上编译的,所以我什至无法将其设置为仅开发依赖项。

2 个答案:

答案 0 :(得分:3)

不幸的是,如果您使用的软件包已固定了自己的依赖关系,则无法在项目的顶层修复它,尽管这是npm计划的未来功能,允许别名替代子依赖关系。 / p>

您可以看到short guide here来手动检查子依赖关系并为项目创建PR,以解决他们自己的依赖关系。

将来,我可能还会建议使用npm audit fix(如果您使用的版本上有此版本),因为这将尝试自动解决问题。

顺便说一句,尽管此漏洞包的严重性很高,但我不会对此太担心,仅当您在生产环境中使用dev-server时才是一个问题,它表示 dev < / strong>,您绝对不应该在开发人员本地使用它。 :-)

答案 1 :(得分:2)

我们在puppeteer > extract-zip > mkdirp > minimist上遇到了类似的问题,其中minimist存在安全漏洞。它已升级,mkdirp也已升级,但是extract-zip不在本文撰写之时。

npx npm-force-resolutions的{​​{1}}条目下使用scripts似乎可以解决问题。

package.json

然后运行$ git diff package.json diff --git a/package.json b/package.json index cf825cf..0d694b3 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,13 @@ "lib": "lib" }, "scripts": { + "preinstall": "npx npm-force-resolutions", "test": "echo \"Error: no test specified\" && exit 1" }, + "resolutions": { + "minimist": "1.2.3", + "mkdir": "0.5.3" + },

npm install