The problem-

在我现有的Vue项目中,如果我运行yarn installyarn add package_name命令,则会发生以下错误-

enter image description here

enter image description here

What I read-

在阅读了this article(向下滚动到"Integrity Hash"部分)之后,我能够对这个错误有一些了解-

YAR将根据以下内容计算每个依赖项安装的哈希值 下载的内容.下次你下载它的时候 依赖项,则Yarn 再次生成散列. 如果新值与存储在ya n.lock中的值不匹配,则会抛出如下所示的错误:Integrity check failed for <package-name> (computed integrity doesn't match our records, got <integrity-hash-value>)

我相信我的错误是相关的.在this article中还建议的解决方案是阅读有关罪犯依赖的信息,如果可以安全使用,请重新安装它.我也读了这篇GitHub issue.

My concern-

据我所知,我的yarn.lock人中有once a resolved version is specified in 100 that will always be the version installed whenever you run 101.人,yargs-parser的版本是20.2.1.

我应该重新安装这个yargs-parser依赖项吗?如果是,那么如何重新安装?我有点担心重新安装对其他依赖项的影响.

My environment details-

以下包管理器全局安装在我的系统中-

node- 14.19.0
yarn- 1.22.4
npm- 6.14.16

如果需要,我可以提供进一步的细节.任何帮助都会起到很大作用.

推荐答案

所以,经过几天的研究,我终于解决了这个问题.

此错误的原因-

正如我在问题中提到的关于我怀疑诚信不匹配的问题,是正确的.

一百零二

在我的例子中,散列不知何故不匹配,这就是实际原因.

我测试的是-

  1. 清理了储藏的Yarn .(非常基本,但不起作用)
  2. 已删除yarn.lock,然后重新安装.(结果非常具有 destruct 性,因为它可能会更新所有包,而实际上只是单个包有问题.)
  3. 我想只重新安装这个yargs-parser版本的程序包,但这是不可能的,因为它没有添加到package.json文件中.:-(

真正解决问题的是-

The hero command-

yarn --update-checksums

What does this command do?

如果任何包的完整性校验和过期或不正确,则运行此命令将根据注册表的当前内容重新生成它们.

因此,这个命令更正了我的yargs-parser包的散列,现在我能够完美地使用Yarn 命令了.

我对任何关于这个概念的其他 idea 持开放态度.

Node.js相关问答推荐

无法在我的 node 项目中转让Google Drive v3 API中的所有权

Windows上使用ES6+的OpenAPI规范的Express服务器不接受嵌套路由'

findoneandupdate()方法更新数据库,但其响应在请求中返回为null

为什么我收到此错误:MissingSchemaError:架构尚未为模型&业务&注册

如何在docker容器上正确安装nodejs?

构建期间 Docker 容器中的 npm 安装失败

TypeScript Eslint警告了一个AWS客户端构造函数(dynamodb),但没有警告另一个(s3)

Amplify 部署的应用程序出现TypeError: handler is not a function错误,但它在本地运行

yarn 安装失败,因为 node-gyp 正在寻找过时的 node 版本标头

我如何保护nodejs中的路由

MongoDB - 查找查询以判断是否存在少量字段,结合字段上的 AND

module.exports=require('other') 和临时变量有什么区别?

fastify:流过早关闭

强制 TypeScript 生成带有.js扩展名的导出/导入;运行 node 16?

Handlebars:访问已被拒绝解析来自的属性,因为它不是其父级的自己的属性

Chrome 浏览器未将 if-modified-since 标头发送到服务器

在 Node.js 与 Cron 作业(job)中设置间隔?

向 Stripe 提交付款请求时出现没有此类令牌错误

Heroku + Node:找不到模块错误

`return function *(){...}` 是什么意思?