npm - 公共 NPM 注册表是否验证上传的 tarball 的校验和?
问题描述
我最近目睹了一个损坏的包版本被发布到 npm 注册表的实例。我发现很多关于在这个事件中做什么(即重新发布包)的问题,但很少有关于“首先是什么导致它发生?”的问题。
在我的情况下(遗憾的是,我无法分享 - 私人组织范围等),拉动 tarballnpm pack
显示文件确实不完整/损坏,并且与预期的校验和不匹配。
npm publish
有效负载包括一个dist.Integrity
带有 SHA-512 校验和的字段,以及每个包上传。鉴于其闭源性质,这可能有点难以回答 - 但是 NPM 注册表是否会在其方面进行任何验证,以检查上传的内容是否与校验和匹配,然后再使包版本可供使用?
提前致谢!
解决方案
追问:是的,确实如此。我通过捕获npm upload
有效负载并更改dist.integrity
校验和来验证这一点。NPM 正确诊断校验和不匹配,并拒绝该包。
推荐阅读
- configuration - log4j2 + 以编程方式覆盖 Web 应用程序中的父自定义 ConfigurationFactory
- javascript - 是否可以在加载完成之前捕获 iframe 窗口?
- flutter - 如何将 ReorderableListView 放入 Sliver 中?
- javascript - 如何按顺序运行这些承诺
- android - Google Vision API 中的 Barcode API 概述是免费的吗?
- python - 在 Python 中翻转压缩列表中的对
- apache-spark-sql - 仅使用 SQL 语句计算转推
- javascript - 在 JavaScript 中生成长字符串的最快方法(性能)
- c++ - C ++:包含彼此的标题会导致错误“尚未声明类”
- javascript - 部署在 GitHub 页面上的 ReactJS 应用程序不适用于自定义域集