Npm 为什么package-lock.json将完整性哈希从sha1更改为sha512?

Npm 为什么package-lock.json将完整性哈希从sha1更改为sha512?,npm,npm-install,package-lock.json,Npm,Npm Install,Package Lock.json,我刚刚生成了一个新的npm锁文件package-lock.json,作为我典型工作流程的一部分。但我注意到,这次所有完整性哈希都从sha1更改为sha512。这里发生了什么 据我所见,npm将完整性校验和从sha1更改为sha512 如果您的git更改是从sha1到sha512,那么您应该更新一次,之后就可以了 如果其他使用代码库的人看到git从sha512向下更改为sha1(这是我遇到的问题),您可以通过运行以下命令来修复它: npm i -g npm cd {working direct

我刚刚生成了一个新的npm锁文件package-lock.json,作为我典型工作流程的一部分。但我注意到,这次所有完整性哈希都从sha1更改为sha512。这里发生了什么


据我所见,npm将完整性校验和从sha1更改为sha512

如果您的git更改是从sha1到sha512,那么您应该更新一次,之后就可以了

如果其他使用代码库的人看到git从sha512向下更改为sha1(这是我遇到的问题),您可以通过运行以下命令来修复它:

npm i -g npm

cd {working directory}
rm -rf node_modules/
rm package-lock.json
npm cache clear --force
npm i
放弃git中对package-lock.json的更改

npm i -g npm
rm -rf node_modules/
npm i
这将更新npm并重新安装您的所有软件包,以便新的校验和(sha512)出现。

另请参见其中的内容,尽管该问题已“修复”,但事实并非如此。删除节点模块是一种变通方法


这可能与操作系统有关。我们现在正在与Linux和Windows平台上的开发人员讨论这个问题。

基于Dave的回答。我找到的修复方法是执行以下操作:

npm i -g npm

cd {working directory}
rm -rf node_modules/
rm package-lock.json
npm cache clear --force
npm i

我们同时为我们所有的开发人员做了这项工作,从而停止了导致令人沮丧的合并冲突的sha-512 vs sha-1问题。

进一步基于以前的评论和建议,我需要删除现有的node_modules文件夹、缓存,然后从git中获取sha512 package-lock.json文件(从另一台计算机提交),最后执行npm i。类似于:

npm i-g npm
rm-射频节点单元模块/
npm缓存清除--强制
git重置——硬
npm i

在这个package-lock.json使用sha512和其他更改之后,情况稳定下来。

作为@Daniel Cumings,我还必须删除
包锁.json
以消除sha1散列。以下是Windows CLI命令供参考,其作用与Daniel的脚本相同:

npm i -g npm
rd /s /q "node_modules"
del package-lock.json
npm cache clear --force
npm i

我在一个大团队中工作。强制每个开发人员强制清理
npm
缓存既困难又不可靠。而且,这并不是每次都有帮助。所以,对于仍然面临这个npm问题的任何人(和我一样)没有其他帮助-试试我最近构建的基于git的工具:。它还原npm锁文件的
sha512->sha1
完整性更改。如果您将此添加到
package.json
postshrinkwrap
脚本中,您最终应该将所有完整性属性设置为
sha512
,并使锁文件一致新界

npm安装--保存开发锁定补丁

在我的例子中,
npm-ginpm
是不够的,我必须在开始时修改路径以指向新的npm


要在不修改的情况下检查它,请尝试使用
/usr/local/bin/npm i
而不是
npm i

这是npm的问题:上面提到的问题已经解决,现在创建了一篇文章来说明如何解决此问题:是否有理由使用sha512而不是sha1?我的计算机目前正在为我们的环境更改为sha1环境。@Elijah1210我想用冲突来“伪造”散列的可能性更小?这在我的情况下是不够的。除了删除
node\u modules
文件夹外,我还需要
npm cache clear--force
。这已经发布了好几个月了,我仍然在忍受这种情况。这让我很难受。我们在年搬到了Thread结束了。每一个NPM问题似乎都通过移动到YarAny解决了。您永远不应该删除您的package-lock.json文件。
"scripts": {
    "postshrinkwrap": "lockfix",
},