Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9409

package-lock.json の lockfileVersion が変更されてしまう場合の対処法

$
0
0
解決策 チーム内でnpmのバージョンをv6かv7に合わせる。 発生した問題 npmをアップデート npmで作業中に以下のようなアップデートガイドが表示されたため、npmをv6からv7にアップデートしました。(Node.jsはv14) Update available 6.14.15 → 7.24.2 Run npm i -g npm to update lockfileVersion 1 → 2 すると、その後に npm i を実行した際、以下のような警告が表示されました。 npm WARN old lockfile: The package-lock.json file was created with an old version of npm, so supplemental metadata must be fetched from the registry. 通常より時間がかかり、installは成功しますが、 package-lock.json の lockfileVersion が 1 → 2 に変わり、ファイル全体に大きな修正が入っていました。 lockfileVersion 2 → 1 例えばこの package-lock.json をpushして、他のチームメンバー(npm v6使用)が npm i を実行した場合、以下のような警告が表示されます。 npm WARN read-shrinkwrap: This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it! この場合もinstallは成功しますが、 lockfileVersion が 2 → 1 に戻り、ファイル全体に再び大きな修正が入ります。 原因 npm Docs によると、npm v7からは、生成される package-lock.json のフォーマットが大きく変更されていて、 lockfileVersion: 2 が指定されるようです。 解決策: チーム内でnpmバージョンを合わせる npmは、Node.jsと一緒にインストールされ、デフォルトのバージョンは Node v14 → npm v6、 Node v15 → npm v7 のように、ある程度決まっているようです。 ですが、今回のように各個人がnpmをアップデートした際に、 package-lock.json の中身が変わってしまうという場合があるため、チーム開発では、npmのバージョンについても、メジャーバージョンだけは合わせておいた方が良いようです。 npm i -g npm@バージョン などで指定バージョンをインストールできます。 (バージョン情報は npm/cliのGitHub 等を参照)

Viewing all articles
Browse latest Browse all 9409

Trending Articles