最近发现npm-audit
并在第一次运行时标记了很多漏洞,主要是围绕包及其依赖项。
想要解决这些漏洞,我发现npm shrinkwrap
它允许我指定应该使用哪些版本及其依赖项?反正我就是这么看的(如果有错请纠正我,在这里学习)。
我试图修复的一个例子是模块hoek
,在我的package.json
这个设置为"hoek": "^5.0.3"
当我运行npm shrinkwrap
其中一个依赖项已hoek
设置为版本 2
"boom": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"requires": {
"hoek": "2.x.x"
},
"dependencies": {
"hoek": {
"version": "2.16.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
}
}
},
我想我可以编辑它并指定我希望依赖项使用的版本,就像这样
"boom": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"dev": true,
"requires": {
"hoek": "2.x.x"
},
"dependencies": {
"hoek": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
"dev": true
}
}
},
但是,当我运行npm shrinkwrap
或npm install
所有这些都恢复为原始状态时
我该如何管理这个?收缩包装是正确的选择,还是我想用它做一些我根本做不到的事情?
谢谢