この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 9038|答える: 0

npm インストールによって生成されるpackage-lock.jsonは何ですか?

[リンクをコピー]
掲載地 2017/12/13 13:17:45 | | |
npmの木node_modules修正やアクションpackage.jsonの場合、package-lock.jsonが自動的に生成されます。 これは、中間依存関係の更新に関係なく、後続のインストールで同じ木を生成できるように、生成される正確な木を記述します。

このファイルはソースコードリポジトリへの提出を意図しており、さまざまな目的で利用可能です:

依存関係木の単一の表現を記述し、チームメイト、デプロイメント、継続的統合がまったく同じ依存関係を確実にインストールすることを保証します。

ユーザーがディレクトリ自体をコミットせずに、以前のnode_modules状態に「進む」ためのツールを提供します。

可読性のあるソース管理の違いを通じて、ツリーの変更をより可視化すること。

また、npmが既にインストールされたパッケージの重複メタデータ解決をスキップできるようにすることで、インストールプロセスを最適化します。

package-lock.jsonの重要な点は、リリースできず、最上位パッケージ以外で見つかれば無視されるということです。 フォーマットはnpm-shrinkwrap.jsonと共有しており、基本的には同じファイルですが公開が可能です。 CLIツールをデプロイするか、リリースプロセスを使って本番パッケージを作成する場合を除き、これは推奨されません。

package-lock.jsonとnpm-shrinkwrap.jsonの両方がパッケージのルートディレクトリに存在している場合、package-lock.jsonは完全に無視されます。

元のリンク:https://docs.npmjs.com/files/package-lock.json


npm 5.xのリリース以降、5.6.0ロックの役割は何度も変わり、現在ではインターネット上の多くの小さな白いテキストが以前の文書翻訳に固執しています。

npm3.xからnpm5に更新しましたが、「npm i」を実行する際の現象がインターネットの一般向け科学記事と一致しないことがわかりました。

ファイルpackage.jsonどれだけ変更しても、npm iが繰り返し実行されると、ロックファイルに記載されたバージョン情報に従ってnpmがダウンロードされると言及されています。

また、npm iを繰り返すと、npmはロック情報を無視し、package.jsonパッケージのセマンティックバージョン情報に従って更新モジュールをダウンロードする(ロックは役に立たないようです)とも言及されています。

**情報によると、NPM 5.0のリリース以降、npmのルールは3回変更されています。 **

1. NPM 5.0.xバージョン。package.jsonがどう変わっても、NPMはロックファイルに従ってダウンロードされます

ファイルpackage-lock.json変更後に更新されないファイルpackage.json 号 #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
この問題はこの問題について文句を言っています。明らかに手動でpackage.jsonを変更したのですが、アップグレードパッケージをください! そして、それが5.1.0の問題につながります...

2. バージョン5.1.0以降、npmインストールはロックファイルを無視して最新のnpmをダウンロードします

それから誰かがこの問題を指摘しました。なぜパッケージロックが無視されているのか。・ 号 #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
この苦情は最終的にバージョン5.4.2以降のルールへと発展しました。

3. バージョン5.4.2以降、なぜパッケージロックが無視されているのか?· 号 #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


大まかに言えば、package.jsonが変更され、package.jsonがロックファイルと異なる場合、npmは「npm i」を実行する際にバージョン番号とパッケージの意味に基づいて最新のパッケージをダウンロードし、ロックに更新します。

両方が同じ状態なら、実際のパッケージバージョンが新しかったかどうかに関わらず、npm I の実行はロックに従ってダウンロードされます。






先の:統計を報告し、データなしで時間法を補完してください
次に:npmチュートリアル(4):npmパッケージをローカルにインストールする
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com