在我的项目中,我使用“ 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,并且由于我的资产是在生产服务器上编译的,所以我什至无法将其设置为仅开发依赖项。
答案 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