Javascript 升级不是';t在package.json中
我今天从GitHub收到一条警告,要求我处理由lodash造成的漏洞,该版本低于4.17.12() 但我现在不直接使用lodash,它是由我的依赖项使用的。尽管所有依赖项都使用lodash 4.17.15,但仍然存在4.17.11。以下是Javascript 升级不是';t在package.json中,javascript,github,npm,lodash,yarnpkg,Javascript,Github,Npm,Lodash,Yarnpkg,我今天从GitHub收到一条警告,要求我处理由lodash造成的漏洞,该版本低于4.17.12() 但我现在不直接使用lodash,它是由我的依赖项使用的。尽管所有依赖项都使用lodash 4.17.15,但仍然存在4.17.11。以下是纱线列表-花型lodash的输出 ...more dependencies above ├─ cheerio@1.0.0-rc.3 │ └─ lodash@4.17.15 ├─ global-tunnel-ng@2.7.1 │ └─ lodash@4.17.
纱线列表-花型lodash
的输出
...more dependencies above
├─ cheerio@1.0.0-rc.3
│ └─ lodash@4.17.15
├─ global-tunnel-ng@2.7.1
│ └─ lodash@4.17.15
├─ istanbul-lib-instrument@3.3.0
│ └─ lodash@4.17.15
├─ jest-config@24.9.0
│ └─ lodash@4.17.15
├─ lodash@4.17.11
然后我尝试了删除lodash
,但得到了错误,package.json文件中没有指定此模块。
那么我如何升级(或删除)包中没有的包。json?因为您的依赖项依赖于lodash,升级它可能会破坏它们,所以您不允许这样做。我看不到任何依赖项使用lodash 4.17.11,
纱线列表的输出似乎推断它们都使用4.17.15。这是否意味着我应该等待一些软件包升级其lodash,而不能自己删除4.17.11?使用npm,不确定。但是您可以手动更新节点模块,例如,进入安装模块的每个目录,并执行npm update lodash
,只要语义版本控制只是一个补丁版本,它就应该工作4.17.11
->4.17.15
是一个补丁版本,所以您应该没事。package.json可能有^4.17.x
或4.17.11
等,因此更新不应破坏任何内容。或者,删除整个节点模块目录,并在应用程序内执行npm初始化。如果在此之后有任何4.17.11
,则开发人员已将其修复为.11
,这对于补丁发行版来说似乎很奇怪。事实上,即使版本是次要版本。。例如,4.18.1
也应该可以,除非开发人员搞砸了……)@EmanuelIntilă升级补丁版本不应该破坏任何东西4.17.11
->4.17.15
是一个补丁版本。这就是语义版本控制的全部要点。事实上,做minor
更新也不会破坏任何东西。使用中的大多数依赖项类似于->^X.Y.Z
,这意味着仅更新到X不是自动的。