ARTIFACTORY:使用sha512时,npm完整性校验和失败
问题描述:
在安装NPM包时,我们有时会注意到校验和完整性失败消息。
发生此错误的根本原因很少。而你的包裹。package-lock. json文件记录了你的项目依赖的NPM包名和版本标签,并且保持了所有下载包的数据完整性。在每次npm安装过程中,npm会根据保存在文件中的校验和值对下载的对象进行比较和验证。
如果任何这样的npm包中的内容被改变了(由于远程和本地之间的各种原因),它的校验和值也会不同,这将导致npm包完整性错误。
错误信息示例:
$ NPM I
npm犯错!代码EINTEGRITY
npm犯错!sha512- xxxxxxxxx ==使用sha512时完整性校验和失败:想要sha512- xabcd ==但得到sha512- xbjbjbjx。(0字节)
以下是这个问题的几个可能原因:
由于各种原因发现了这个问题,为了避免此类问题,您需要在本地的NPM客户端或Artifactory存储库级别上进行处理。
1.由于代理服务器、中间缓存或目标Npm注册表可能包含错误的包对象(许多类似的场景,由于数据损坏、网络包丢失、错误的包重建),Npm客户端缓存可能包含相同版本和标签的错误包。
2.Artifactory存储库中有损坏的包——作者将不正确的包发布到本地存储库,或者当用户试图从Artifactory NPM远程存储库中解析包时,由于网络问题可能会在两者之间终止,或者包可能因某些原因被中断,导致存储库中有不正确的包,在这种情况下,删除该包并重新加载/缓存它。
3.当存储库包含具有相同名称但sha值不同的重复包时—因此,避免在不同的存储库下发布具有相同名称的包。
4 .如果在解析包时发现任何不一致,请在存储库上执行重新索引,如果您注意到包校验和为空或未计算,请尝试修复校验和或清理该包并重新部署或再次拉包。
解决此问题的可能解决方法:
1.为了避免任何软件包在本地系统中产生冲突,
- 将node_modules和_cache文件夹连同包一起从.npm位置移除。json文件。
- 执行"npm cache clean -force "命令清空本地npm缓存。
- 接下来运行"npm cache verify"
- 试试'npm update'
- 运行'npm install -verbose '
2.如果仍然没有更改,请从Artifactory远程缓存中删除包,右键单击存储库,执行zap缓存并尝试安装包。
