Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 9038|Odpoveď: 0

Aký je package-lock.json generovaný inštaláciou npm?

[Kopírovať odkaz]
Zverejnené 13. 12. 2017 13:17:45 | | |
Pre NPM úpravu node_modules strome alebo akéhokoľvek akčného package.json sa automaticky vygeneruje package-lock.json. Popisuje presný strom, ktorý sa generuje, aby nasledujúce inštalácie mohli generovať ten istý strom bez ohľadu na medziaktualizácie závislostí.

Tento súbor je určený na odoslanie do úložiska zdrojového kódu a je dostupný na rôzne účely:

Popisuje jednu reprezentáciu stromu závislostí, ktorá zaručuje, že spoluhráči, nasadenia a kontinuálna integrácia zabezpečia inštaláciu presne tých istých závislostí.

Poskytnúť používateľom nástroj na "posun" do predchádzajúceho node_modules stavu bez nutnosti commitovať samotný adresár.

Uľahčiť lepšiu viditeľnosť zmien stromu prostredníctvom čitateľných rozdielov v riadení zdrojového kódu.

A optimalizovať inštalačný proces tým, že NPM umožní preskočiť duplicitné rozlíšenie metadát z predtým nainštalovaných balíkov.

Kľúčovým detailom o package-lock.json je, že ho nie je možné vydať a ak sa nájde mimo najvyššieho balíka, bude ignorovaný. Zdieľa formát s npm-shrinkwrap.json, je to v podstate ten istý súbor, ale umožňuje publikovanie. Toto sa neodporúča, pokiaľ nenasadíte nástroj CLI alebo inak nevyužijete proces vydávania na vytvorenie produkčného balíka.

Ak v koreňovom adresári balíka existujú package-lock.json aj npm-shrinkwrap.json, package-lock.json bude úplne ignorované.

Pôvodný odkaz: https://docs.npmjs.com/files/package-lock.json


Od vydania npm 5.x sa úloha zámku 5.6.0 mnohokrát zmenila a teraz je veľa malých bielych textov na internete zaseknutých v predchádzajúcom preklade dokumentov.

Aktualizoval som z npm3.x na npm5, ale zistil som, že fenomén pri vykonávaní 'npm i' nebol v súlade s populárno-vedeckým článkom na internete.

Uvádza sa, že bez ohľadu na to, ako package.json súbor upravíte, ak sa npm i opakovane vykonáva, npm sa stiahne podľa verzie popísanej v zámkovom súbore.

Tiež sa uvádza, že pri opakovaní npm i npm ignoruje informácie o zámku a stiahne modul aktualizácie podľa informácií o verzii balíka v package.json (zámok sa zdá byť zbytočný).

**Podľa informácií sa pravidlá npm i zmenili trikrát od vydania npm 5.0. **

1. Verzia npm 5.0.x, bez ohľadu na to, ako sa package.json zmení, NPM I bude stiahnutý podľa zámkového súboru

package-lock.json súbor sa neaktualizuje po zmene package.json súbor · Číslo #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Tento problém sa sťažuje na tento problém, samozrejme som package.json menil manuálne, prečo mi nedáš upgrade balík! A potom to vedie k problému 5.1.0...

2. Po verzii 5.1.0 inštalácia npm ignoruje uzamykací súbor a stiahne najnovší npm

Potom niekto nastolil túto otázku, prečo sa balíkový zámok ignoruje? · Číslo #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
Sťažnosť sa nakoniec vyvinula do pravidiel po verzii 5.4.2.

3. Prečo sa po verzii 5.4.2 balíkový zámok ignoruje? · Číslo #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


Zhruba povedané, ak sa zmení package.json a package.json sa líši od súboru zámku, npm si pri vykonávaní 'npm i' stiahne najnovší balík podľa čísla verzie a sémantického významu balíka a aktualizuje ho na lock.

Ak sú obe v rovnakom stave, potom spustenie npm i stiahnem podľa locku, bez ohľadu na to, či je skutočná verzia balíka nová alebo nie.






Predchádzajúci:Vykazujte štatistiky a doplňujte metódu času bez dát
Budúci:npm tutoriál (4): Inštalácia npm balíkov lokálne
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com