我在我的节点服务器中使用express v4.16.4。
它引入了cookie签名v1.0.6。
我想将cookie-signature升级到v1.1.0,因为它有一个我需要的修复。有什么方法可以做到这一点?
我不认为我应该做npm install cookie- list @1.1.0,因为它会在我的应用依赖中列出cookie-list。
编辑:this讨论了我正在寻求解决的完全相同的问题。公认的答案是使用npm-shrinkwrap,另一个投票最多的答案是使用package-lock.json,但这两个答案似乎都有问题,在各自的评论中进行了讨论。
很高兴将此作为副本关闭。
发布于 2021-03-04 15:47:17
您还可以通过在package.json中添加resolutions密钥来“强制”某些版本的依赖项来解决此问题:
{
"resolutions": {
"cookie-signature": "^1.1.0"
}
}要真正使用它,您必须在preinstall中使用npm-force-resolutions
"scripts": {
"preinstall": "npx npm-force-resolutions"
}有关更多信息,请参阅此帖子:https://itnext.io/fixing-security-vulnerabilities-in-npm-dependencies-in-less-than-3-mins-a53af735261d
发布于 2021-12-27 00:34:56
NPM 8引入了“覆盖”,它允许您覆盖直接依赖的特定传递依赖。对于您的用例,您可以在您的package.json中声明如下内容。
{
"overrides": {
"express": {
"cookie-signature": "1.1.0"
}
}
}更多细节@ https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
发布于 2019-11-20 16:11:07
我们有一个非常相似的问题。Protractor 5.4.2依赖于webdriver-manager@^12.0.6。在package-lock.json中,webdriver-manager固定为12.1.5。然而,我们需要12.1.7版本才能使其与所有最新的chrome版本兼容。
我们注意到,当删除node_modules和包-lock.json时,npm会安装12.1.7版,但我们没有找到自动更新包-lock.json的方法。以下是我们采取的步骤:
删除node_modules
npm install
我认为这个变通方法应该也适用于express和cookies签名。
https://stackoverflow.com/questions/56634474
复制相似问题