强制npm更新依赖项



在我的项目中,我使用"laravel-mix",它依赖于"webpack-dev-server">

"npm-audit"报告我的版本webpack-dev服务器上有一个高严重性漏洞,所以我一直在尝试将其更新到最新版本。。但没有成功。

我试过

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

没有成功。。我想问题是laravel混合已经是最新的,但它的依赖性不是。。

我试着添加一个新版本的webpack-dev服务器作为依赖项,希望它能取代旧版本,但我只是同时存在两个版本:

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混合,由于我的资产是在生产服务器上编译的,我甚至不能将其设置为仅依赖于开发。。

不幸的是,如果您使用的包固定了自己的依赖项,则无法在项目的顶层修复它,尽管这是npm未来计划的一个功能,允许别名覆盖子依赖项。

您可以在这里看到一个简短的指南,手动查看子依赖项,并为项目创建PR以修复它们自己的依赖项。

将来,如果npm audit fix在您使用的版本上可用,我是否也可以建议使用它,因为如果可以的话,它将尝试自动修复问题。

顺便说一句,我不会太担心这个易受攻击的软件包,尽管它的严重性很高,但只有当你在生产中使用开发服务器时,它才会成为一个问题,正如它在锡上所说的dev,你绝对不应该在任何地方使用它,而是在开发中本地使用。:-(

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

package.json中的scripts条目下使用npx npm-force-resolutions似乎已经达到了目的。

$ 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:

$ npm install && npm audit
> sge@1.0.0 preinstall /home/jlam/code/prjName
> npx npm-force-resolutions
npx : 5 installé(s) en 5.733s
added 1 package from 1 contributor, removed 1 package and audited 72 packages in 7.212s
[...]
found 0 vulnerabilities
[...]    
=== npm audit security report ===                        
found 0 vulnerabilities
in 72 scanned packages

最新更新