web-dev-qa-db-ja.com

npmにpackage-lock.jsonを生成させる方法はありますか?

私はそれを誤って削除し、それ以来package.jsonに多くの変更を加えました。 npm installまたはnpm updateはもうpackage-lock.jsonを生成しません。 npmキャッシュとnvmキャッシュをクリアしようとしましたが、何も機能していないようです。私はそれをいくつかのバージョンのnode(6.10.3 node - 3.10.10 npm)で試してみましたが、どれも動きません。

Npmにpackage-lock.jsonファイルを生成させる方法はありますか?

63
Big Money

デフォルトでは、package-lock.jsonを実行するたびにnpm installが更新されます。ただし、これはpackage-lock=false~/.npmrcを設定することによってグローバルに無効にすることができます。

グローバルなpackage-lock=false設定が有効な場合でも、次のコマンドを実行してプロジェクトのpackage-lock.jsonファイルを強制的に更新することができます。

npm install --package-lock

このコマンドはpackage-lock.json更新を強制する唯一の確実な方法です。

70
Mathias Bynens

これはコメントで答えられています。 package-lock.jsonnpm v5以降の機能です。 npm shrinkwrapは、すべてのバージョンのnpmでロックファイルを作成する方法です。

11
LJHarb

Npm 6.xではあなたが使用することができます

npm i --package-lock-only

によると https://docs.npmjs.com/cli/install.html

--package-lock-only引数は、node_modulesをチェックして依存関係をダウンロードするのではなく、package-lock.jsonのみを更新します。

8

package-lock.jsonは、npm iを実行するたびに再生成されます。

0
Mcanic