问题:
npm私服是用 verdaccio 搭的,npm i A@1.1.0时报错EINTEGRITY,期望是str1, 实际是str2
分析:
切换到npm6.12,npm cache clean -f 减少干扰
npm v A@1.1.0,返回的digest是str1
npm install A, 报错,实际算出来的是str2
查看npm源码,到ssri这个包,下面代码计算文件的sha512hash
image.png
手动下载包,openssl dgst -sha512 -binary A.tgz | openssl base64, 结果确实是str2。那问题可能就出在私服了
解决:
登录私服,进入storage下A包目录,查看package.json, 找1.1.0的描述,发现integrity就是str1,手动修改为str2后 安装就正常了
补充:
使用npm4安装,报的shasum不一致,同样登录私服查看,发现该版本shasum也不正确,手动修改后正常。
追加:node-gyp报错,Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.4/fse-v1.2.4-node-v72-darwin-x64.tar.gz
解决: 升级fsevents到1.2.9
网友评论