Neh*_*oni 5 installation node.js npm vue.js yarnpkg
问题-
在我现有的 Vue 项目中,如果我运行yarn installoryarn add package_name命令,则会发生以下错误 -
我读到的——
阅读本文后(向下滚动到“完整性哈希”部分),我能够对这个错误有了一些了解:
纱线将根据下载的内容计算每个依赖项安装的哈希值。下次下载该依赖项时,yarn 会再次生成哈希值。如果新值与yarn.lock中存储的值不匹配,yarn将抛出如下错误
Integrity check failed for <package-name> (computed integrity doesn't match our records, got <integrity-hash-value>:)
我相信我的错误是相关的。本文还建议的解决方案是阅读有关罪魁祸首的依赖项,如果可以安全使用,请重新安装它。我也读过这个GitHub 问题。
我的顾虑-
据我所知,一旦指定了已解析的版本,yarn.lock每当您运行yarn install. 在我的yarn.lock版本中yargs-parser是20.2.1.
我应该重新安装这个yargs-parser依赖项吗?如果是,那么如何?我有点担心重新安装对其他依赖项的影响。
我的环境详细信息-
以下包管理器在我的系统中全局安装 -
node- 14.19.0
yarn- 1.22.4
npm- 6.14.16
Run Code Online (Sandbox Code Playgroud)
如果需要,我可以提供更多详细信息。任何帮助都会很好。
于是,经过几天的研究,终于解决了这个问题。
正如我在关于我怀疑诚信不匹配的问题中引用的那样,是正确的。
完整性校验和是 Yarn 使用的一项安全功能,用于确保包的内容自发布到注册表以来未被篡改。因此,当您安装软件包时,Yarn 会从注册表下载软件包的 tarball,并验证完整性校验和是否与文件中列出的相符yarn.lock。
就我而言,哈希值以某种方式不匹配,这就是实际原因。
yarn.lock又安装了。(非常具有破坏性的结果,因为当您确实只是对单个包有问题时,它可能会更新所有包。)yargs-parser包,但这是不可能的,因为它没有添加到package.json文件中。:-(英雄命令——
yarn --update-checksums
Run Code Online (Sandbox Code Playgroud)
这个命令有什么作用?
如果任何包的完整性校验和已过期或不正确,则运行此命令将根据注册表的当前内容重新生成它们。
所以这个命令纠正了我的包的哈希值yargs-parser,现在我可以完美地使用yarn命令了。
我对这个概念的任何其他想法持开放态度。
| 归档时间: |
|
| 查看次数: |
1693 次 |
| 最近记录: |