私は典型的なワークフローの一部として新しいnpmロックファイルpackage-lock.jsonを生成しました。しかし、今回はすべての整合性ハッシュがsha1からsha512に変更されたことに気付きました。ここで何が起きてるの?
私が見ることができるものから、npmはsha1からsha512へ完全性チェックサムを変更しました。
もしあなたのgitの変更がsha1からsha512へと進んでいるのであれば、あなたはその更新を一度行うべきで、それはその後うまくいくでしょう。
他の誰かがコードベースを使っていて、gitがsha512からsha1に変わったのを見た場合(私が抱えていた問題です)、以下を実行することでそれを修正できます。
Package-lock.jsonのgitの変更を破棄します
npm i -g npm
rm -rf node_modules/
npm i
これにより、npmが更新され、すべてのパッケージが再インストールされ、新しいチェックサム(sha512)が表示されます。
Daveが答えたことに基づいて。私が見つけた解決策は次のようにすることでした:
npm i -g npm
cd {working directory}
rm -rf node_modules/
rm package-lock.json
npm cache clear --force
npm i
私たちはすべての開発者のためにこれを同時にしました、そしてこれはいらいらするマージ衝突を引き起こしていたsha-512対sha-1問題を止めました。
https://github.com/npm/npm/issues/17749 も参照してください。問題は「解決された」と主張していますが、そうではありません。 node_modules
を削除することは回避策です。
オペレーティングシステムと関係がある可能性があります。私たちは今、LinuxとWindowsプラットフォームの開発者たちと一緒にこれを打っています。
以前のコメントや提案をさらに詳しく説明するために、私は既存のnode_modulesフォルダー、キャッシュを消去してから、(別のコンピューターからコミットされた)gitからsha512 package-lock.jsonファイルを取得し、最後にnpmを実行する必要がありました。 。このようなもの:
npm i -g
npm rm -rf node_modules/
npm cache clear --force
git reset --hard
npm i
この後package-lock.jsonはsha512を使用し、他の変更は安定しました。