我在节点服务器中使用express v4.16.4。
它引入了cookie签名v1.0.6。
我想将cookie签名升级到v1.1.0,因为它具有我需要的修复程序。 这样做的方式是什么?
我不认为我应该在npm上安装cookie-signature@1.1.0,因为它会在我的应用程序依赖项中列出cookie-signature。
编辑:this讨论了我要解决的完全相同的问题。可接受的答案是使用npm-shrinkwrap,另一个最受欢迎的答案是使用package-lock.json,但这两个似乎都存在问题,如各自的评论所述。
很高兴将其作为副本关闭。
答案 0 :(得分:8)
您也可以通过在 resolutions
中添加 package.json
键来“强制”某些版本的依赖项来解决该问题:
{
"resolutions": {
"cookie-signature": "^1.1.0"
}
}
要真正使用它,您必须在 npm-force-resolutions
中使用 preinstall
:
"scripts": {
"preinstall": "npx npm-force-resolutions"
}
有关更多信息,请参阅此帖子:https://itnext.io/fixing-security-vulnerabilities-in-npm-dependencies-in-less-than-3-mins-a53af735261d
答案 1 :(得分:0)
我们有一个非常相似的问题。量角器5.4.2依赖于webdriver-manager@^12.0.6。在package-lock.json中,webdriver-manager固定为12.1.5。但是,我们需要12.1.7才能使其与所有最新的chrome版本一起使用。
我们注意到,npm在删除node_modules和package-lock.json时将安装版本12.1.7,但是我们没有找到自动更新package-lock.json的方法。这就是我们采取的步骤:
npm install
npm install
我认为这种解决方法也应适用于快递和cookie签名。