問題:
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的描述拦宣,發(fā)現(xiàn)integrity就是str1截粗,手動修改為str2后 安裝就正常了
補充:
使用npm4安裝,報的shasum不一致鸵隧,同樣登錄私服查看绸罗,發(fā)現(xiàn)該版本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