1. ホーム
  2. npm

[解決済み] なぜ package-lock.json は整合性ハッシュを sha1 から sha512 に変更したのですか?

2022-05-17 14:55:21

質問

私の典型的なワークフローの一部として、新しい npm ロックファイル package-lock.json を生成したところです。しかし、今回、すべての整合性ハッシュが sha1 から sha512 に変更されていることに気づきました。ここで何が起こっているのでしょうか?

"chalk": {
    "version": "2.0.1",
    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
-   "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+   "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
    […]
}

どのように解決するのですか?

見たところ、npmが整合性チェックサムをsha1からsha512に変更したようです。

gitの変更がsha1からsha512になっているのであれば、一度その更新を行えば、その後は問題ないでしょう。

もし他の誰かがコードベースで作業していて、sha512 から sha1 への git の変更 (これは私が抱えていた問題です) を見た場合、以下を実行することでそれを修正することができます。

package-lock.json の git での変更を破棄します。

npm i -g npm
rm -rf node_modules/
npm i

これでnpmが更新され、新しいチェックサム(sha512)が存在するように、すべてのパッケージが再インストールされます。