npm
版本:3.10.10
node
版本:6.14.2
我需要升级npm
的某些依赖项来解决一些安全警告。例如:sshpk
是npm
通过http-signature
和request
的依赖关系:
bash-4.3# npm ls sshpk -g
/usr/local/lib
`-- npm@3.10.10
`-- request@2.75.0
`-- http-signature@1.1.1
`-- sshpk@1.10.1
我需要sshpk
才能升级到>=1.14.1
,这可能是http-signature@1.1.1
的package.json中的版本锁定所致:
"dependencies": {
"assert-plus": "^0.2.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
},
我尝试过npm upgrade -g npm@3
和npm --depth 9999 upgrade -g npm@3
但没有成功。似乎npm
不会在任何update
操作中继续,因为它注意到我们已经在npm 3.x.x
版本3.10.10
发布了npm
。就安全补丁而言,我需要能够使npm update
的依赖关系保持最新状态。这可以直接通过yarn upgrade <package>@<version>
吗?我正在考虑类似于man systemd.service
的东西,它将遍历包的子依赖关系并升级它们,即使父包不需要版本更改。
答案 0 :(得分:0)
重新安装软件包的一种可靠方法是将其删除或node_modules
并重新安装。
由于NPM无法安装NPM,因此需要Node to be reinstalled。
另一种方法是安装备用NPM包装器(例如npm3
)并使用它重新安装主npm
包
npm i -g npm3
rm -rf npm/
npm3 i -g npm@3
--force
option可用于重新安装软件包,但不保证将重新安装软件包依赖项。